我需要一个正则表达式来匹配从特定WORD
开始的行,后跟零个或多个数字,然后再没有其他数字。到目前为止,我已经尝试过这个:
^WORD\d{0,}
和此:
^WORD[0-9]*
但它没有按预期工作:它也匹配WORD11a
这样的行,我不想要。
答案 0 :(得分:2)
我忘记了$
行尾字符,因此匹配:
WORD1
WORD11
WORD11a
这很有效,很好:
^WORD\\d*$
答案 1 :(得分:0)
问题可能是^
匹配输入的开头(我怀疑你只找到匹配,如果第一行匹配),而不是一行的开头。
您可以尝试使用肯定的后观,说匹配应该在输入开头(^
)或新行(\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"
答案 2 :(得分:0)
&#34;(\\ AWORD [\\ d] * $)&#34; 这应该可以解决问题。输入的开头,你的WORD和一个数字