所以正则表达式似乎与最长的匹配相匹配.例如:
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());
}
}
Run Code Online (Sandbox Code Playgroud)
生成输出
我想要这个输出
我一直在尝试以下模式:
Pattern p = Pattern.compile("Clark[^((Kent)*)]Kent", Pattern.CASE_INSENSITIVE);
Run Code Online (Sandbox Code Playgroud)
这不起作用,但你看到我想说的话.我想要从Clark到Kent的字符串不包含任何Kent的字符串.
这个字符串:
ClarkRalphKentGuyGreenGardnerBruceBatmanKent
应该产生输出
| 归档时间: |
|
| 查看次数: |
3703 次 |
| 最近记录: |