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

时间:2015-04-30 07:14:07

标签: c# regex string replace

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

到目前为止,我已尝试过以下内容:

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

这会导致结果测试(),当它应该是 Test123()时。

5 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

SELECT FirstName, LastName, EmailAddress 
FROM RegTable
WHERE EventId IN (1,2,3,4)
AND EventYear = 2011
AND FirstName + LastName + DOB IN (SELECT FirstName + LastName + DOB FROM RegTable WHERE EventId IN (1,2,3,4) AND EventYear = 2012)

尝试此操作。使用\d+(?=[^(]*\)) 模式verbatinum。前瞻将确保号码前@没有)。按(替换。< / p>

参见演示。

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

答案 2 :(得分:1)

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

答案 3 :(得分:0)

您也可以尝试这种方式:

variabales.x.

答案 4 :(得分:0)

删除实际括号内的数字但不是括号,并在其中保留其他任何不是C#的数字#Regex.Replace表示< em>匹配所有括号子串\([^()]+\),然后移除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将很有效:\(匹配文字(,{{1匹配1+位数,\d+匹配文字\)