我需要一个正则表达式来匹配以特定的WORD
开头的行,然后是零个或多个数字,然后就是更多。到目前为止,我已经试过这样:正则表达式匹配单词,然后是零个或多个数字?
^WORD\d{0,}
这:
^WORD[0-9]*
但预期它不工作:它也像匹配线WORD11a
,我不想要的。
我需要一个正则表达式来匹配以特定的WORD
开头的行,然后是零个或多个数字,然后就是更多。到目前为止,我已经试过这样:正则表达式匹配单词,然后是零个或多个数字?
^WORD\d{0,}
这:
^WORD[0-9]*
但预期它不工作:它也像匹配线WORD11a
,我不想要的。
问题可能是^
匹配输入的开头(如果第一行匹配,我怀疑只发现匹配),而不是行的开始。
你可以尝试使用正回顾后说,比赛应该输入的任何启动(^
)或新行(\n
)开头:
String input = "hello156\n"+
"world\n" +
"hello\n" +
"hell55\n";
Pattern p = Pattern.compile("(?<=^|\n)hello\\d*");
Matcher m = p.matcher(input);
while (m.find())
System.out.println("\"" + m.group() + "\"");
打印:
"hello156"
"hello"
我忘了$
行尾字符,所以它匹配:
WORD1
WORD11
WORD11a
这个工作,只是罚款:
^WORD\\d*$
“(\\ AWORD [\\ d * $)” 这应该做的伎俩。输入开始,你的WORD和一个数字
定义“不按预期工作”。什么搭配不应该?什么不符合,应该? – 2010-12-04 11:35:06
鉴于您提供的信息,这似乎是正确的。描述它是如何失败的。 – 2010-12-04 11:35:29