2012-10-30 23 views
0

我想匹配,像這樣的模式正則表達式:的Java與空格

TR @(任意數量的單詞字符去這裏):

因此模式開始TR則有一個空間,然後有@再有任何字符和一個終止:

這裏是我的正則表達式:Pattern p = Pattern.compile("TR\\[email protected][\\w]+:");

這是工作,例如將失敗:

TR @abcnews:

我想我的錯誤是與空白。

+1

這當然不是錯誤的來源,但'[]''左右\\ w'是多餘的。 –

+1

你的正則表達式匹配你的示例字符串就好了。你有什麼問題? – Keppil

+0

您的正則表達式也不會完全符合您的描述:它不會僅在'TR'後面匹配單個空格,而是任何空格字符(空格,製表符,回車符,換行符,換頁符或垂直製表符)。如果你真的需要空間,你可以使用一個文字空間('''')。 – Dmitri

回答

1

DEMO

正則表達式:TR\[email protected](\w+):

這甚至反向引用文本,它接受TR和@之間的多個空格所以它會起到很好的適合你,先生。

編輯Java代碼,它的正常工作:

Matcher ma = Pattern.compile("TR\\[email protected](\\w+):").matcher("TR @asdfasd:"); 
while (ma.find()) { 
    System.out.println(ma.group(1)); 
}