从一个特定的地方,在C#字符串删除号码
问题描述:
/abcd1/ef/gh001/d
阅读上面的行到字符串(字符串试验)从一个特定的地方,在C#字符串删除号码
我想后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");
,它做同样的事情。
答
您可以使用positive lookbehind,以确保您要更换只有紧跟abcd
的数字:
test = Regex.Replace(test, @"(?<=abcd)\d+", "");
在上面的例子中,一个或多个数字\d+
将被匹配,只有当他们紧跟abcd
串。
答
在我的我的情况下,文本abcd是不恒定 - 文本可以是任何
example1 /abcd1/ef/gh001/d
example2 /tmcy1/ef/gh001/d
但字符串常量的位置。它总是在第一间//
/**abcd1**/ef/gh001/d
+0
这是答案,还是你问题的附录? – halfer
是否要删除一贯来像“ABCD”后或号码,你不知道吗? – MC10