代码之家  ›  专栏  ›  技术社区  ›  Edward Tanguay

什么正则表达式可以从BR标记中去掉所有属性?

  •  3
  • Edward Tanguay  · 技术社区  · 15 年前

    C正则表达式将替换所有这些内容:

    <BR style=color:#93c47d>
    <BR style=color:#fefefe>
    <BR style="color:#93c47d">
    <BR style="color:#93c47d ...">
    <BR>
    <BR/>
    <br style=color:#93c47d>
    <br style=color:#fefefe>
    <br style="color:#93c47d">
    <br style="color:#93c47d ...">
    <br>
    <br/>
    

    用:

    <br/>
    

    基本上“从任何br元素中删除所有属性,并将其小写”。

    2 回复  |  直到 15 年前
        1
  •  8
  •   Michael Myers KitsuneYMG    15 年前

    比如:

    Regex.Replace(myString, "<br[^>]*>", "<br/>", RegexOptions.IgnoreCase);
    

    或者没有 IgnoreCase :

    Regex.Replace(myString, "<[Bb][Rr][^>]*>", "<br/>");
    
        2
  •  0
  •   MaxGuernseyIII    15 年前

    假设在样式之后你没有任何属性,我敢打赌

    class Program
    {
      const string SOURCE = @"<BR style=color:#93c47d>
    <BR style=color:#fefefe>
    <BR style=""color:#93c47d"">
    <BR style='color:#93c47d'>
    <BR>
    <BR/>
    <br style=color:#93c47d>
    <br style=color:#fefefe>
    <br style=""color:#93c47d"">
    <br style='color:#93c47d'>
    <br>
    <br/>";
    
      static void Main(string[] args)
      {
        const string EXPRESSION = @"(style=[^""'][^>]*)|(style=""[^""]*"")|(style='[^']*')";
    
        var regex = new Regex(EXPRESSION);
    
        Console.WriteLine(regex.Replace(SOURCE, string.Empty));
      }
    }
    

    如果在Style属性之后有一些属性写入标记中,那么最好使用编程解决方案。