正则替换中的一个Bug

string replacement="$7777777777";

Regex.Replace("hello","e",replacement);

运行上面的一行,会报ArgumentException. 说捕获索引不能大于Int.MaxValue。

程序的理解是,我的replacement string 是前面表达式匹配的第7777777777个结果,其实不是,这里我的目的仅仅是替换"e"为"$7777777777".

解决方案:

先用正则匹配要替换的内容,把内容中的一个$,替换成$$, "$$777777777777", 再代入替换, 出来的结果就成了期望的'H$77777777777llo'

原文地址:https://www.cnblogs.com/DataFlow/p/2826034.html