Regex:匹配没有样式的HTML标签.属性

本文关键字:HTML 标签 属性 样式 Regex | 更新日期: 2023-09-27 17:54:01

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

<td>

和具有任意属性的td,例如

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

而不是具有style属性的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>");
}

Regex:匹配没有样式的HTML标签.属性

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

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

你有一个类似的行为,就像你想要它((?!(style=).)+表示'not style='。但我同意吉姆·米歇尔的观点。这里建议使用真正的解析器