有没有办法让Regex检查第一个和最后一个字符,但只会替换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
,同时检查前一个角色也是。
答案 0 :(得分:5)
Regex.Replace("This is IV item.", @"\bIV\b", "fourth");
答案 1 :(得分:2)
您正在寻找的是所谓的看后面和展望未来。
尝试使用(?<=\ )IV(?!<=\ )
作为模式。
答案 2 :(得分:2)
你的问题并不完全清楚你想要接受和拒绝的内容,但我认为你需要这样的事情:
Regex.Replace("This is IV item.", "(?<=[^A-Za-z0-9])(IV)(?=[^A-Za-z0-9])", "fourth");