代码之家  ›  专栏  ›  技术社区  ›  MicMit

.NET regex将两个分隔符之间的文本(包括/排除分隔符)替换为其他内容

  •  0
  • MicMit  · 技术社区  · 14 年前
    Field1: Unknown1
    Field2: Unknown2
    Field3: Unknown3
    

    在我的示例中,我希望排除以“field2:”开头的行,该行实际上是起始标记“field2:”end marker“\n”,并替换为包含分隔符的“”。

    或者如果我想替换正则表达式

    Field2: Unknown\n  with Field2: SomethingElse\n
    
    2 回复  |  直到 14 年前
        1
  •  1
  •   Jan Goyvaerts    14 年前

    完全删除行(假设输入是一个字符串,其中所有行都用分隔符分隔 \n ):

    result = Regex.Replace(input, "^Fielt2:.*\n", "", RegexOptions.MultiLine);
    

    要替换行:

    result = Regex.Replace(input, "^Field2:.*", "Field2: SomethingElse", RegexOptions.MultiLine);
    

    自从 .* 把所有东西都抓到线的末尾,除了终止线断开,不需要使用 $ 以匹配行尾。

        2
  •  0
  •   Anon.    14 年前

    对于这种情况,我们可以使用锚来匹配该行:

    Regex.Replace(input, "^Field2:.*$", "Field2: SomethingElse");