/abcd1/ef/gh001/d
将以上一行读入字符串(String test)
我想在abcd
所需的输出为/abcd/ef/gh001/d
我使用了以下代码
test = Regex.Replace(test, "[0-9]", "");
但它会删除该行中的所有数字
/abcd/ef/gh/d
请帮助!!
答案 0 :(得分:3)
由于您知道数字所在的位置,因此您可以对表达式进行小幅调整,使其变为:test = Regex.Replace(test, "(abcd)[0-9]+", "$1");
。
此表达式将匹配abcd1
并将abcd
放在一个组中。之后通过$1
访问此论坛,因此基本上您将abcd1
替换为abcd
。
另一种选择是test = Regex.Replace(test, "abcd[0-9]+", "abcd");
,它可以做同样的事情。
答案 1 :(得分:1)
您可以使用positive lookbehind确保仅替换abcd
后紧跟的数字:
test = Regex.Replace(test, @"(?<=abcd)\d+", "");
在上面的示例中,仅当一个或多个数字\d+
紧跟abcd
字符串后才会匹配。
答案 2 :(得分:0)
在我的情况下,文本abcd不是常量 - 文本可以是任何
example1 /abcd1/ef/gh001/d
example2 /tmcy1/ef/gh001/d
但字符串的位置不变。它始终位于//
之间的第一个位置/**abcd1**/ef/gh001/d
答案 3 :(得分:0)