当谈到正则表达式时,我真的是一个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 :(得分:5)
您要使用的正则表达式是:
Regex.Split( s, "\\[.*?\\]" );
方括号是特殊字符(指定字符组),因此必须使用反斜杠进行转义。在方括号内,您需要任何字符序列,除了一个紧密的方括号。有几种方法可以解决这个问题。一种是指定[^\]]*
(明确指定“不是一个接近的方括号”)。正如我在答案中所使用的那样,另一个是通过在其后添加问号来指定匹配不贪婪。这告诉正则表达式处理器不要贪图消耗尽可能多的字符,而是在下一个表达式匹配时立即停止。
答案 1 :(得分:1)
@"\[.*?\]"
将匹配文字的括号
答案 2 :(得分:0)
另一种写作方式:
Regex.Split(str, @"\[[^]]*\]");