-1
String pat = "^(?!US\\b)(\\w{2})(.*)$";
Pattern pattern = Pattern.compile(pat);

Matcher matcher = pattern.matcher("US 123");
while (matcher.find()) {
    System.out.println(matcher.group(1));
}

为什么我不能在 Java 中做到这一点?那我用什么来匹配 Java RegExp 中的开始和结束元字符呢?

4

2 回答 2

0

我认为您希望在这里找到匹配项 (group(1) = 123),但是^(?!US\\b)由于字符串以US. 这也证明了输入元字符的开始^和结束$对于 Java 中的正则表达式工作正常。

于 2013-05-10T20:36:35.117 回答
0

你的问题不清楚。您似乎正在尝试匹配US后跟边界字符的字母。在这种情况下,您可以使用:

String pat = "(\\w{2}\\b)(.*)";

在这种情况下,当您使用时,行锚的开始和结束结束是不必要的Matcher#find

于 2013-05-10T20:22:10.827 回答