正则表达式:匹配没有“样式”属性的HTML标记

时间:2011-05-02 03:19:10

标签: c# .net regex

如何编写与td匹配的正则表达式,例如

<td>

和带有任何属性的td,例如

<td colspan='2' width='300'>

具有样式属性的td,例如

<td colspan='2' style='padding:2px'>

提前致谢! (问题在这里结束

如果有人有兴趣,请进一步了解我在做什么:

我想为HTML标签添加样式,如果它们还没有。这是用于电子邮件,而不是网络。

我已经有了这个附加css的代码(它可以工作,但只有在标签已经有一个带有分号的分号的样式属性时才有效):

/// <param name="tag">eg. "td"</param>
/// <param name="css">eg. "font:12px sans-serif;"</param>
public static string AppendStyle(string html, string tag, string css)
{
    Regex rex = new Regex(@"<"+tag+@" ([^>]*)style=['""]([^'""]*; *)['""]([^>]*)>");
    html = rex.Replace(html, @"<" + tag + " $1style='$2"+css+"'$3>");
}

1 个答案:

答案 0 :(得分:2)

这不是你应该用正则表达式做的事情。但这并不意味着它是不可能的。如果你这样做

<\w+>|<\w+ ((?!style=).)+>

你有类似的行为((?!(style =)。)+表示'not style ='。但我同意Jim Mischel。建议在这里使用真正的解析器。

相关问题