我需要搜索&替换内部的HTML标记,内联的CSS,以避免使用内联的style=""
属性。
即。替换看起来像这样的东西:
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="font-family: Helvetica;line-height: 100%;margin-top: 20px; text-align: left;vertical-align: bottom;color: #202020">
这样的事情:
<table border="0" cellpadding="0" cellspacing="0" width="100%" font-family="Helvetica" line-height="100%" margin-top="20px" text-align="left" vertical-align="bottom" color="#202020">
有人知道搜索的正则表达式吗?替换我必须写,以便这样做?
感谢。
答案 0 :(得分:4)
你可以这样做:
style="(.*?)"
并将捕获的组保存为变量。([a-zA-Z-]+):\s*(.*?)\s*;
并将其替换为{1}="{2}"
。style=".*?"
替换为数字2的结果。答案 1 :(得分:4)
使用此正则表达式替换:
(?:\G(?!^)|\bstyle=")([^:]*):\s*([^;]*)[;"](?=[^>]*>)
替换为(记住末尾的空格):
$1="$2"
这是demo
<强>说明强>
(?:\G(?!^)|\bstyle=")
- 我们开始匹配的边界。边界是上一场比赛的结束(\G(?!^)
)或style="
(由于\bstyle="
)。([^:]*)
- 第一个捕获组,其中包含除:
以外的0个或多个字符的序列:
- 文字:
\s*
- 0个或更多空格([^;]*)
- 第二个捕获组,其中包含除;
以外的0个或多个字符的序列[;"]
- ;
或"
(?=[^>]*>)
- 我们检查结束边界以确保我们在结束标记内。