我有一个.ahk给我类似下面的内容。我想只保留包含style
的HTML标记内的内容。
在下面的示例中,我只想保留<b style="color: rgb(34, 34, 34)>;"><span>A text </span></b>
并删除之前和之后的所有内容。
这个正则表达式与我想要的匹配:(<[b div span p] style=".*">.*<\/.*[div span p b]>)
但是我不能只保留这个匹配并删除其他东西。
我已尝试使用$ 2和\ 2进行替换,但它没有工作
匹配
([.\r\n]*)(<[b div span p] style=".*">.*<\/.*[div span p b]>)([.\r\n]*)
第一组应匹配从开始到包括的所有内容,第三组应匹配从结束到包括结尾的所有内容。 然后我只能保留第二组。
取代:
\2
以下是我的尝试:https://regex101.com/r/Bkq0JE/2
---------------------------
ahk html clipboard.ahk
---------------------------
Version:0.9
StartHTML:0000000159
EndHTML:0000002912
StartFragment:0000000195
EndFragment:0000002876
SourceURL:https://en.wikipedia.org/wiki/Genghis_Khan
<html>
<body>
<!--StartFragment--><b style="color: rgb(34, 34, 34)>;"><span>A text </span></b><!--EndFragment-->
</body>
</html>
---------------------------
OK
---------------------------
答案 0 :(得分:1)
您可以使用:
查找:.*<!--StartFragment-->(.*)<!--EndFragment-->.*
替换:$1
修饰符:gs
请参阅regex101.com。
请注意,s
修饰符使.
也匹配换行符。如果您碰巧使用notepad ++,则可以使用复选框设置该选项。
答案 1 :(得分:0)
您使用的是notepad ++吗?如果是这样,只需点击Ctrl + H
然后执行以下操作:
.*(<b\s[^>]*>.*<\/b>).*
$1
Regular Expressions