Regex.Replace(“... abc-10-11-09?”,......,...)

时间:2017-12-28 15:02:30

标签: c#

我有一个类似

的字符串
str1 = "...abc-10-11-09?"

我需要替换最后一个 "-09"。 所以结果就像

"...abc-10-11-2?"

我试过

Regex.Replace(str1, @"([0-9]+)\?", "$1-2?"), 

但我成了"...abc-10-11-09-2?"

是的,请有人帮助我。 谢谢。

3 个答案:

答案 0 :(得分:1)

如果您只想替换最后一个号码,则不需要$ 1。

Regex.Replace(str1, @"([0-9]+)\?", "2?")

会起作用

答案 1 :(得分:1)

你很近:

string result = Regex.Replace(str1, @"-[0-9]+\?$", "-2?");
请注意我们:

  1. 只需替换(否$1
  2. Achor $(我们只想替换 last ocurrence)

答案 2 :(得分:1)

您必须按如下方式使用Regex.Replace

String result = Regex.Replace(str1, @"-[0-9]+\?$", "-2?");

如果您还想正确处理-