^/(?i:(?:security|phpmyadmin|licenses|webalizer|server-status|server-info))
请问这个正则表达式 ?i: 是什么意思
启用不区分大小写的匹配
?! 表示顺序否定环视,也就是所谓的匹配字符的右边。
那么 (?!:) 代表的意思就是 匹配字符的右边不为冒号。
相同的还有 ?<! 逆序否定环视,即匹配的左边不为指定字符
?= 顺序环视
?<= 逆序环视
至于你给的表达式里的 ?: 则指的是忽略捕获组。也就是忽略(security|phpmyadmin|licenses|webalizer|server-status|server-info)这个捕获。
给你个JAVA应用实例吧。供你参考下。
[code="java"]/**
*/
public final class PatternStrings {
private PatternStrings() {
}
/**
/**
/**
public static void main(String args[]) {
String string = "b,3d, ,a3,t3ad,'23',3,'tt', xm,xbm , sfzh ,rxny";
System.out.println("string-> " + string);
System.out.println("regex1-> "
+ string.replaceAll(PatternStrings.REGEX2, "?"));
System.out.println("regex2-> "
+ string.replaceAll(PatternStrings.REGEX3, "$1 = ? "));// $1代表第一个捕获组
System.out.println("regex3-> "
+ string.replaceAll(PatternStrings.REGEX1, " = ? "));
}
}[/code]