删除字符串特定部分的数字(括号内)

Remove numbers in specific part of string (within parentheses)

我有一个字符串 Test123(45​​) 并且我想删除括号内的数字。我该怎么做?

到目前为止我已经尝试了以下方法:

string str = "Test123(45)";
string result = Regex.Replace(str, "(\d)", string.Empty);

但是这会导致结果 Test(),而它应该是 Test123().

\d+(?=[^(]*\))

尝试 this.Use 和 verbatinum 模式 @。前瞻将确保数字 ) 在 it.Replace 之前没有 ( empty string.

查看演示。

https://regex101.com/r/uE3cC4/4

string str = "Test123(45)";
string result = Regex.Replace(str, @"\(\d+\)", "()");

tis替换所有括号,用括号填充数字

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 )

要删除包含在 () 符号中的数字, 会很好地工作:\( 匹配文字 (\d+ 匹配 1+ 个数字,\) 匹配文字 ).