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

Jul*_*era 0 c# regex split

在正则表达式方面,我真的是一个n00b.我一直试图在任何地方拆分字符串[----anything inside-----].

string s = "Hello Word my name_is [right now I'm hungry] Julian";
string[] words = Regex.Split( s, "------");
Run Code Online (Sandbox Code Playgroud)

结果将是 "Hello Word my name_is "" Julian"

Eth*_*own 5

你想要使用的正则表达式是:

Regex.Split( s, "\\[.*?\\]" );
Run Code Online (Sandbox Code Playgroud)

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