簡體   English   中英

正則表達式。將所有內容都放在方括號[]中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM