2012-02-26 24 views
2

我有我的正則表達式的一個問題:正則表達式,從第提取字(多個空格)

String regex = "(?<=[\\s])#\\w+\\s"; 

我想要的格式,如這樣的字符串正則表達式:

"This is a Text  #tag1 #tag2 #tag3" 

隨着正則表達式,我得到的最後兩個值的結果,但沒有標記1 - 因爲有一個以上的空白。但我想要他們三個!

我嘗試了一些變化,但是毫無效果。

+0

你想除了第一個標籤,或只是最後兩個標籤?你想包含'#'標籤還是不包含? – ohaal 2012-02-26 15:46:40

+0

OUH有打字錯誤,對不起。我再次編輯。我想要所有3個標籤,包括# – dadom85 2012-02-27 08:38:24

+0

您只需要在字符串末尾或字符串中的任何位置的所有標籤?它總是3個標籤,或者不同的數量?是否符合'#tag1'之前必須有2個或更多空格的標準纔是有效匹配? – ohaal 2012-02-27 11:20:17

回答

2

這是從你的問題你真的是經過什麼有點不清楚,所以我已經把一些簡單的替代品:

要捕獲所有標籤的字符串中,我們可以使用一個回顧後:

((?<=\\s|^)#\\w+) 

要捕獲所有的標籤在字符串的結尾,我們可以使用一個前瞻:

(#\\w+(?=\\s#)|#\\w+$) 

如果在最後總是三個標籤,有沒有必要一個lookaround:

(#\\w+)\s(#\\w+)\s(#\\w+)$ 
+0

第二次爲我工作。非常感謝你 !! – dadom85 2012-03-15 14:11:50