我需要一個正則表達式來匹配以特定的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