正则表达式.将所有内容拆分在方括号 [] 内

本文关键字:方括号 拆分 正则表达式 | 更新日期: 2023-09-27 18:36:52

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