如何解决正则表达式:匹配不具有“样式”属性的HTML标记
|| 您如何编写一个与td本身匹配的正则表达式,例如。<td>
和带有任何属性的td,例如
<td colspan=\'2\' width=\'300\'>
但不包含具有样式属性的td,例如。
<td colspan=\'2\' style=\'padding:2px\'>
提前致谢! (问题在这里结束)
如果有人感兴趣,我正在做什么的进一步信息:
我想为HTML标记添加一种样式,如果它们还没有的话。这是用于电子邮件,而不是用于网络。
我已经有了这段附加CSS的代码(它可以工作,但是仅当标签已经具有带有分号的style属性时才有效):
/// <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 = \'。但是我同意Jim Mischel的建议,建议在此处使用真正的解析器。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。