因此,正則表達式似乎匹配最長可能的匹配項。例如:否定Java正則表達式中的文字字符串
public static void main(String[] args) {
String s = "ClarkRalphKentGuyGreenGardnerClarkSupermanKent";
Pattern p = Pattern.compile("Clark.*Kent", Pattern.CASE_INSENSITIVE);
Matcher myMatcher = p.matcher(s);
int i = 1;
while (myMatcher.find()) {
System.out.println(i++ + ". " + myMatcher.group());
}
}
產生輸出
- ClarkRalphKentGuyGreenGardnerClarkSupermanKent
我想這個輸出
- ClarkRalphKent
- ClarkSupermanKent
我一直在努力模式,如:
Pattern p = Pattern.compile("Clark[^((Kent)*)]Kent", Pattern.CASE_INSENSITIVE);
不工作,但你明白我想說什麼。我想要從克拉克到肯特的字符串,不包含任何肯特事件。
此字符串:
ClarkRalphKentGuyGreenGardnerBruceBatmanKent
應該產生輸出
- ClarkRalphKent
請參閱http://perldoc.perl.org/perlre.html – 2008-12-09 21:28:41