對於正則表達式,我真的是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"
對於正則表達式,我真的是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"
要使用正則表達式是:
Regex.Split(s, "\\[.*?\\]");
方括號是特殊字符(指定一個字符組),所以他們必須要用反斜槓逃脫。在方括號內,除了方括號外,還需要任何字符序列。有幾種方法可以解決這個問題。一種是指定[^\]]*
(明確指定「不是方括號」)。另一方面,正如我在答覆中所使用的,是通過在它後面附加問號來指定匹配不是貪婪。這告訴正則表達式處理器不要貪婪地消耗盡可能多的字符,而是在下一個表達式匹配時立即停止。
而且,如果您只是想刪除該文本,則可以使用Regex.Replace(s,「\\\ [。*?\\\]」 ,String.Empty); – JDB
@"\[.*?\]"
將匹配文本
另一種方式來寫它的括號:
Regex.Split(str, @"\[[^]]*\]");
你試過嗎? '\ [[a-zA-Z1-9] * \]' –