我有这样的html标签:
<p class=MsoNormal align=center style='margin-top:1.0pt;margin-right:0in;margin-bottom:1.0pt;margin-left:0in;text-align:center;text-indent:0in;line-height:115%;text-autospace:none'>Something</p>
现在,我想这样做:
<p style='text-align:center;'>Something</p>
我该怎么做?
答案 0 :(得分:0)
由于您标记了正则表达式,因此这里是一个正则表达式替换,它将根据您所说的内容进行匹配和替换:
<p class=MsoNormal [^>]*style='[^']*(text-align:[A-Za-z]*;?)[^']*'>(.*?)</p>
的更换:
<p style='$1'>$2</p>
这不是特别有效或必然是最好的方法。如果<p>
标记包含另一个嵌套<p>
(我很确定这不是有效标记,但最好还是提到它),因为它会与结束{匹配},因此会出现微妙的错误嵌套</p>
的{1}}而不是我们想要匹配的外层{1}}。
另一个潜在的错误是,如果<p>
元素中有嵌套的转义单引号,例如style
,它就会搞乱。这可以通过更复杂的正则表达式来修复,但存在使其变得非常难以理解的风险。
在我看来,一个涉及解析的解决方案会好很多,比如NiftyDude对javascript的建议。