C# 需要正则表达式替换C中的帮助吗#

C# 需要正则表达式替换C中的帮助吗#,c#,regex,C#,Regex,有没有办法让正则表达式检查第一个和最后一个字符,但只替换IV,而不替换空格 Regex.Replace("This is IV item.", "[^A-Za-z0-9](IV)[^A-Za-z0-9]", "fourth"); 请不要告诉我MatchEvaluator和其他基于匹配的东西,我需要一行解决方案,一行并不意味着组合代码,它意味着只使用替换方法 另外,我所说的不仅仅是空格,我所说的一般是任何字符,比如:( 再一次,让我澄清一下,除了一些与字符匹配但不会替换字符的正则表达式符号之外,

有没有办法让正则表达式检查第一个和最后一个字符,但只替换
IV
,而不替换空格

Regex.Replace("This is IV item.", "[^A-Za-z0-9](IV)[^A-Za-z0-9]", "fourth");
请不要告诉我MatchEvaluator和其他基于匹配的东西,我需要一行解决方案,一行并不意味着组合代码,它意味着只使用替换方法

另外,我所说的不仅仅是空格,我所说的一般是任何字符,比如:

再一次,让我澄清一下,除了一些与字符匹配但不会替换字符的正则表达式符号之外,我没有寻找任何其他符号,也不是此方法:

Regex.Replace("This is IV item.", "([^A-Za-z0-9])(IV)([^A-Za-z0-9])", "$1fourth$3");

由于这个正则表达式是一些代码的参数,这些代码会自动使用$1来处理某些事情,我不想更改这些代码,所以有没有办法使$1仅为
IV
,同时检查前一个字符。

您要找的是所谓的向后看和向前看s
尝试使用
(?你正在寻找的是所谓的向后看向前看
试着使用
(?从你的问题中不完全清楚你想要接受和拒绝什么,但我认为你需要这样的东西:

Regex.Replace("This is IV item.", "(?<=[^A-Za-z0-9])(IV)(?=[^A-Za-z0-9])", "fourth");

Regex.Replace(“这是IV项。”,”(?从您的问题中不完全清楚您想要接受和拒绝什么,但我认为您需要这样的东西:

Regex.Replace("This is IV item.", "(?<=[^A-Za-z0-9])(IV)(?=[^A-Za-z0-9])", "fourth");

Regex.Replace(“这是IV项”。”(?如果我想问的话,你为什么需要一行代码?正如我已经告诉过的,Regex替换在其他库中,我不想修改。Regex是这个库的输入。所以问题是关于编写Regex,而不是C代码。如果我想问的话,你为什么需要一行代码?正如我已经告诉过的,Regex替换是在另一个库中,我不想修改它。正则表达式是它的输入。所以问题是关于编写正则表达式而不是C#代码。关于“This is!IV item”怎么办?我说它可以是任何符号。这适用于“This is!IV item”。但对于“This is(IV)item”它失败。单词边界(\b)方法非常简单,通常是您所需要的。如果这还不够,那么您应该使用“向后看/向前看”解决方案。关于“this is!IV item”怎么办?我说它可以是任何符号。这适用于“this is!IV item”。但对于“this is _IV u item”则失败。单词边界(\b)方法非常简单,通常是您所需要的。如果这还不够,那么您应该使用“向后看/向前看”解决方案。+1正如我所看到的一样。很抱歉,不接受这一点,因为我遇到了给定语法的问题,所以接受带有示例的方法。我想您的意思是
(?+1,正如我所看到的。对不起,不接受这个原因,我遇到了给定语法的问题,所以接受这个例子。我想你的意思是
(?)?