代码之家  ›  专栏  ›  技术社区  ›  Priyank Bolia

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

  •  1
  • Priyank Bolia  · 技术社区  · 16 年前

    有没有一种方法可以让正则表达式检查第一个和最后一个字符,但只替换第一个和最后一个字符 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成为

    3 回复  |  直到 16 年前
        1
  •  2
  •   Mark Byers    16 年前

    你的问题并不完全清楚你想要接受和拒绝什么,但我认为你需要这样的东西:

    Regex.Replace("This is IV item.", "(?<=[^A-Za-z0-9])(IV)(?=[^A-Za-z0-9])", "fourth");
    
        2
  •  5
  •   Pent Ploompuu    16 年前
    Regex.Replace("This is IV item.", @"\bIV\b", "fourth");
    
        3
  •  2
  •   Jay Bazuzi Buck Hodges    16 年前

    你要找的就是所谓的 . 试用 (?<=\ )IV(?!<=\ ) 作为一种模式。