Bra*_*eVN 0 .net c# regex string
我想用Visual C#删除文本中2个字符之间的内容.
这是一个例子:
鉴于:嗨[大家],我22岁,我是越南科技大学的学生
结果:嗨,我22岁,我是越南的学生
我用这个语法
string input = "Hi [everybody], I'm 22 years old, I'm a student [at a University of Technology]";
string regex = "(\\[.*\\])";
string output = Regex.Replace(input, regex, "");
Run Code Online (Sandbox Code Playgroud)
但代码是在第一个和最后一个方括号之间删除所有,所以这是结果:
你好在越南
我该如何解决?
.*是贪婪的,所以你的表达式在a [和a 之间匹配尽可能多的字符]- 包括许多其他[s和]s ..
您可以通过以下两种方式解决此问题:
添加一个?.这使得* 不贪婪:在匹配之前.*?将匹配尽可能少的字符].
更换.用[^]],这只会让表达式匹配非]字符其间的[和].