Regex.Split方括号内的所有内容[]

时间:2012-06-12 17:11:14

标签: c# regex split

当谈到正则表达式时,我真的是一个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"

3 个答案:

答案 0 :(得分:5)

您要使用的正则表达式是:

Regex.Split( s, "\\[.*?\\]" );

方括号是特殊字符(指定字符组),因此必须使用反斜杠进行转义。在方括号内,您需要任何字符序列,除了一个紧密的方括号。有几种方法可以解决这个问题。一种是指定[^\]]*(明确指定“不是一个接近的方括号”)。正如我在答案中所使用的那样,另一个是通过在其后添加问号来指定匹配不贪婪。这告诉正则表达式处理器不要贪图消耗尽可能多的字符,而是在下一个表达式匹配时立即停止。

答案 1 :(得分:1)

@"\[.*?\]"将匹配文字的括号

答案 2 :(得分:0)

另一种写作方式:

Regex.Split(str, @"\[[^]]*\]");