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>");
}
这不是你应该用正则表达式做的事情。但这并不意味着它是不可能的。如果你这样做
<'w+>|<'w+ ((?!style=).)+>
你有一个类似的行为,就像你想要它((?!(style=).)+表示'not style='。但我同意吉姆·米歇尔的观点。这里建议使用真正的解析器