【发布时间】:2013-10-16 23:41:21
【问题描述】:
我在替换特定字符后的字符时遇到问题。例如,我想用此代码将第一个 'aa' 替换为 '33'。
string str = "dc1aaaafg";
string pattern = @"a{2}(?!(1))";
Regex rgx = new Regex(pattern);
string result = rgx.Replace(str, "33");
但结果是“dc13333fg”。它取代了“1”之后的第二组。我只需要替换像“dc133aafg”这样的第一组。我怎样才能做到这一点。我有一个大字符串,它可以替换很多,这只是一个例子。
【问题讨论】:
-
“第一个 aa”是什么意思?整个字符串中只有第一个“aa”?或者,所有“aa”前面都没有“a”?顺便说一句,这个构造
(?!(1))是字符“1”的前瞻否定断言,并且它被封装在一个捕获组中。你来这里的目的是什么? -
我需要在每个 '1' 之后的第一个 'aa'