【发布时间】:2010-01-14 17:02:11
【问题描述】:
有没有办法让正则表达式检查第一个和最后一个字符,但只替换 IV 而不是空格。
Regex.Replace("This is IV item.", "[^A-Za-z0-9](IV)[^A-Za-z0-9]", "fourth");
请不要告诉我 MatchEvaluator 和其他基于 Match 的东西,我需要一个单行解决方案,一行并不意味着组合代码,它意味着只使用 Replace 方法。
另外,我说的不仅仅是空格,我指的是任何字符,例如:(
再一次,让我澄清一下,除了一些匹配字符但不会替换它的正则表达式符号之外,我不是在寻找其他任何东西,而不是这种方法:
Regex.Replace("This is IV item.", "([^A-Za-z0-9])(IV)([^A-Za-z0-9])", "$1fourth$3");
因为这个正则表达式是某些代码的参数,它会自动将 $1 用于某些事情,我不想更改该代码,所以有没有办法让 $1 仅是 IV,同时检查前一个字符也是。
【问题讨论】:
-
如果我可能会问,为什么你需要一个单线?
-
如前所述,Regex Replace 位于其他一些库中,我不想修改。正则表达式是对此的输入。所以问题是关于编写正则表达式而不是 C# 代码。