我有一个字符串 Test123(45),我想删除括号内的数字。我该怎么做呢?
到目前为止,我已尝试过以下内容:
string str = "Test123(45)";
string result = Regex.Replace(str, "(\\d)", string.Empty);
这会导致结果测试(),当它应该是 Test123()时。
答案 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>
参见演示。
答案 2 :(得分:1)
string str = "Test123(45)";
string result = Regex.Replace(str, @"\(\d+\)", "()");
答案 3 :(得分:0)
您也可以尝试这种方式:
variabales.x.
答案 4 :(得分:0)
删除实际在括号内的数字但不是括号,并在其中保留其他任何不是C#的数字#Regex.Replace
表示< em>匹配所有括号子串\([^()]+\)
,然后移除MatchEvaluator
内的所有数字。
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+
匹配文字\)
。