在c#中删除字符串中特定位置的数字
本文关键字:位置 定位 数字 字符串 删除 | 更新日期: 2023-09-27 18:03:44
/abcd1/ef/gh001/d
将上面的行读入字符串(string test)
我想删除abcd
后面的数字
所需输出为/abcd/ef/gh001/d
test = Regex.Replace(test, "[0-9]", "");
但是它会从行中删除所有的数字,像这样
/abcd/ef/gh/d
请帮助! !
因为你知道数字的位置,你可以对你的表达式做一个小的调整,使它变成:test = Regex.Replace(test, "(abcd)[0-9]+", "$1");
.
这个表达式将匹配abcd1
并将abcd
放在一个组中。然后通过$1
访问该组,因此基本上您将用abcd
替换abcd1
。
另一个选择是test = Regex.Replace(test, "abcd[0-9]+", "abcd");
,它做同样的事情。
您可以使用正面查看以确保您只替换紧跟在abcd
后面的数字:
test = Regex.Replace(test, @"(?<=abcd)'d+", "");
在上面的例子中,只有当一个或多个数字紧跟在abcd
string之后时,'d+
才会被匹配。
演示。
您可以使用以下正则表达式替换:
(?i)^(/[a-z]+)'d+(.*)
并替换为$1$2
看到演示
在我的例子中,文本abcd不是常量——文本可以是任何值
example1 /abcd1/ef/gh001/d
example2 /tmcy1/ef/gh001/d
而是字符串常量的位置。它总是出现在//
/**abcd1**/ef/gh001/d