2015-07-21 98 views
0
/abcd1/ef/gh001/d 

阅读上面的行到字符串(字符串试验)从一个特定的地方,在C#字符串删除号码

我想后abcd

以去除数所需的输出是/abcd/ef/gh001/d

我用下面的代码

test = Regex.Replace(test, "[0-9]", ""); 

但它删除像这样的所有数字

/abcd/ef/gh/d 

请帮忙!!

+0

是否要删除一贯来像“ABCD”后或号码,你不知道吗? – MC10

回答

3

由于您知道其中的数字,您可以对表达式进行小调整,使其变为:test = Regex.Replace(test, "(abcd)[0-9]+", "$1");

该表达式将匹配abcd1并将abcd放置在一个组内。然后通过$1访问此组,因此基本上,您将用abcd替换abcd1

另一种方法是test = Regex.Replace(test, "abcd[0-9]+", "abcd");,它做同样的事情。

1

您可以使用positive lookbehind,以确保您要更换只有紧跟abcd的数字:

test = Regex.Replace(test, @"(?<=abcd)\d+", ""); 

在上面的例子中,一个或多个数字\d+将被匹配,只有当他们紧跟abcd串。

Demo.

0

在我的我的情况下,文本abcd是不恒定 - 文本可以是任何

example1  /abcd1/ef/gh001/d 
example2  /tmcy1/ef/gh001/d 

但字符串常量的位置。它总是在第一间//

/**abcd1**/ef/gh001/d 
+0

这是答案,还是你问题的附录? – halfer

0

您可以使用下面的正则表达式替换:

(?i)^(/[a-z]+)\d+(.*) 

而且随着$1$2取代。

demo

相关问题