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

Regex将所有匹配的标记替换为小写

  •  0
  • Rippo  · 技术社区  · 9 年前

    给定以下html文本片段

      <th>Member name:</th>
      <td>$$FULLNAME$$</td>
      <th>Club:</th>
      <td>$$ClubName$$</td>
      <th>Business Category:</th>
      <td>$$SubCategory$$</td>
    

    我正在尝试替换所有令牌,例如。 $$FULLNAME$$ 变成 $$fullname$$ 使用C#,输出应为

      <th>Member name:</th>
      <td>$$fullname$$</td>
      <th>Club:</th>
      <td>$$clubname$$</td>
      <th>Business Category:</th>
      <td>$$subcategory$$</td>
    

    我提出了一个不能正确工作的问题,因为 \L 未将匹配项转换为小写

    public static string TokenReplacer(string value)
    {
        var pattern = Regex.Escape("$$") + "(.*?)" + Regex.Escape("$$");
        var regex = new Regex(pattern);
        return regex.Replace(value, Regex.Unescape("$$$$") + @"\L$1" + Regex.Unescape("$$$$"));
    }
    
    1 回复  |  直到 9 年前
        1
  •  4
  •   EZI    9 年前
    var output = Regex.Replace(input, @"\$\$.+?\$\$", m => m.Value.ToLower());