這一個很簡單,但似乎在困擾着我。用java中的空格匹配單詞正則表達式
我有以下文本行:
for months to
我想用下面的正則表達式匹配它:
for\s*months\s*to
我讀這正則表達式爲:
- 必須有單詞「for」
- 後面跟着任意數量的空間
- 其次是「月」字
- 後面緊跟着這個詞的空間
- 任何量「到」
而對於我來說,這應該匹配,但它不。任何人都可以看到我可能出錯的地方。
這一個很簡單,但似乎在困擾着我。用java中的空格匹配單詞正則表達式
我有以下文本行:
for months to
我想用下面的正則表達式匹配它:
for\s*months\s*to
我讀這正則表達式爲:
而對於我來說,這應該匹配,但它不。任何人都可以看到我可能出錯的地方。
你很可能有先後的空白。使用String.matches(String regex)
您必須匹配整個字符串。
嘗試"\\s*for\\s+months\\s+to\\s*"
我將它改爲:'\ s * for \ s * months \ s * to'以允許任何空格開頭,但它仍然不匹配 – user489041
這是因爲您有在上面的例子中,最後一個空白符號。 – crush
這是因爲後面的空格中。
試試這個:
Pattern p = Pattern.compile("for\\s*months\\s*to\\s*");
Matcher m = p.matcher("for months to ");
System.out.println(m.matches());
您的回答後我從OP問題中選擇了「以下文本行」,並且選擇顯示了尾部的空格。接得好! :) – andr
你可能有多餘的空格(和複製你的代碼有多餘的空格「到」後)。這是一個應該幫助你的鏈接。 http://fiddle.re/26pu – Scott