我正在尝试替换字符串中的单个(最后一个或倒数第二个)匹配项。我已经有了正则表达式并且它可以工作,但它替换了所有项目,然后我必须返回并替换单个项目。
Regex.Replace(BaseString, MatchString, ReplacementString)
我想使用 MatchEvaluator 但不知道如何使用。
有什么帮助吗?
MatchEvaluator 只是一个委托。你传入你的函数。
在你的情况下,使用类似的东西:
Regex.Replace(BaseString, MatchString, delegate(Match match)
{
bool last = match.NextMatch().Index == 0;
if (last)
return match.Value;
else
return ReplacementString;
}, RegexOptions.Compiled);
此代码会跳过最后一个匹配项。您还可以以类似的方式检查倒数第二个匹配项。
另请参阅此问题以获取有关如何使用 MatchEvaluator 的更多信息:Regex.Replace 中的 MatchEvaluator 如何工作? https://stackoverflow.com/questions/2587866/how-does-matchevaluator-works-c-regex-replace
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)