我有一个字符串Test123(45)我想删除括号内的数字。我会怎么做呢?删除字符串的特定部分中的数字(在括号内)
到目前为止,我已经试过如下:
string str = "Test123(45)";
string result = Regex.Replace(str, "(\\d)", string.Empty);
但是这导致的结果测试(),当它应该是Test123()。
我有一个字符串Test123(45)我想删除括号内的数字。我会怎么做呢?删除字符串的特定部分中的数字(在括号内)
到目前为止,我已经试过如下:
string str = "Test123(45)";
string result = Regex.Replace(str, "(\\d)", string.Empty);
但是这导致的结果测试(),当它应该是Test123()。
\d+(?=[^(]*\))
尝试this.Use与verbatinum
模式@
.The先行将确保数量有)
没有(
it.Replace之前empty string
。
查看演示。
string str = "Test123(45)";
string result = Regex.Replace(str, @"\(\d+\)", "()");
'Regex.Replace(str,@“\(\ d + \)”,“()”)'将适用于格式为'(DigitDigitDigit)'的字符串。 [result'()'];如果字符串的格式为'(DigitSomethingDigit)',它不会删除Digits。 [结果'(DigitSomethingDigit)'] – ASh
那朵替换所有括号,用括号填满数字
string str = "Test123(45)";
string result = Regex.Replace(str, @"\(\d+\)", "()");
你也可以试试这个方法:
string str = "Test123(45)";
string[] delimiters ={@"("};;
string[] split = str.Split(delimiters, StringSplitOptions.None);
var b=split[0]+"()";
删除一个数字,在其实里面括号但不包括圆括号并保留其中的任何其他内容,而非C#中的数字Regex.Replace
意味着匹配所有括号子字符串与\([^()]+\)
然后删除MatchEvaluator
内的所有数字。
这里是一个C# sample program:
var str = "Test123(45) and More (5 numbers inside parentheses 123)";
var result = Regex.Replace(str, @"\([^()]+\)", m => Regex.Replace(m.Value, @"\d+", string.Empty));
// => Test123() and More (numbers inside parentheses)
要删除括在(
和)
符号数字,ASh's \(\d+\)
solution将工作做好:\(
相匹配的文字(
,\d+
比赛1+数字,\)
相匹配的文字)
。
非常感谢,这个作品!也是伟大的网站,没有意识到这一点。 – SomeGuy08
@ SomeGuy08:regex101没有处理.NET特定的正则表达式。使用http://regexstorm.net/tester或http://regexhero.net/tester/ –
@ SomeGuy08 ..我会用ASh/fubo的解决方案..它是这个解决方案的简化解决方案,也非常高性能..(需要非常少的步骤..我不认为应该使用lookaheads,除非没有实际的要求) –