在正则表达式方面,我真的是一个 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, @"\[[^]]*\]");