在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

请帮助! !

在c#中删除字符串中特定位置的数字

因为你知道数字的位置,你可以对你的表达式做一个小的调整,使它变成: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