[英]Regex.Split everything inside square brackets []
對於正則表達式,我真的很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.Split(str, @"\[[^]]*\]");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.