正则表达式用小写替换所有匹配的令牌

时间:2015-02-18 16:31:44

标签: c# regex

给出以下html文本片段

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

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

  <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 个答案:

答案 0 :(得分:3)

var output = Regex.Replace(input, @"\$\$.+?\$\$", m => m.Value.ToLower());