Java正则表达式开始和结束元数据字符错误

时间:2013-05-10 20:09:34

标签: java regex

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中的开始和结束元字符呢?

2 个答案:

答案 0 :(得分:0)

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

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

开始&在这种情况下,当你使用Matcher#find

时,行锚的末尾是不必要的

答案 1 :(得分:0)

我认为你期望在这里找到匹配(group(1)= 123)但是你正在做的负面预测^(?!US\\b)将不会通过,因为字符串以{{1}开头}}。这也证明了输入元字符的起始US和结束^在Java中正则表达式正常工作。