2012-06-12 147 views
0

對於正則表達式,我真的是n00b。例如,我一直試圖拆分一個字符串,例如[----anything inside-----]正則表達式。分割方括號內的所有內容[]

string s = "Hello Word my name_is [right now I'm hungry] Julian"; 
string[] words = Regex.Split(s, "------"); 

的結果將是"Hello Word my name_is "" Julian"

+0

你試過嗎? '\ [[a-zA-Z1-9] * \]' –

回答

5

要使用正則表達式是:

Regex.Split(s, "\\[.*?\\]"); 

方括號是特殊字符(指定一個字符組),所以他們必須要用反斜槓逃脫。在方括號內,除了方括號外,還需要任何字符序列。有幾種方法可以解決這個問題。一種是指定[^\]]*(明確指定「不是方括號」)。另一方面,正如我在答覆中所使用的,是通過在它後面附加問號來指定匹配不是貪婪。這告訴正則表達式處理器不要貪婪地消耗盡可能多的字符,而是在下一個表達式匹配時立即停止。

+0

而且,如果您只是想刪除該文本,則可以使用Regex.Replace(s,「\\\ [。*?\\\]」 ,String.Empty); – JDB

1

@"\[.*?\]"將匹配文本

0

另一種方式來寫它的括號:

Regex.Split(str, @"\[[^]]*\]"); 
相關問題