正则表达式删除除匹配项之外的所有内容
Regex remove everything except the match
我有一个 .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]*)
第一组应该匹配从头到尾的所有内容,第三组应该匹配从头到尾的所有内容。
那我只能保留第二组了。
替换为:
这是我的尝试: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
---------------------------
你可以使用这个:
查找:.*<!--StartFragment-->(.*)<!--EndFragment-->.*
替换:</code><br>
修饰符:<code>gs
参见 regex101.com。
请注意,s
修饰符使 .
也匹配换行符。如果你碰巧使用notepad++,那么可以用复选框设置那个选项。
你用的是记事本++吗?如果是这样,只需点击 Ctrl + H
然后执行以下操作:
- 查找内容:
.*(<b\s[^>]*>.*<\/b>).*
- 替换为:
</code></li>
<li>搜索模式:<code>Regular Expressions
- 勾选"Matches newlines"
- 单击 "Replace" 并完成
我有一个 .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]*)
第一组应该匹配从头到尾的所有内容,第三组应该匹配从头到尾的所有内容。 那我只能保留第二组了。
替换为:
这是我的尝试: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
---------------------------
你可以使用这个:
查找:.*<!--StartFragment-->(.*)<!--EndFragment-->.*
替换:</code><br>
修饰符:<code>gs
参见 regex101.com。
请注意,s
修饰符使 .
也匹配换行符。如果你碰巧使用notepad++,那么可以用复选框设置那个选项。
你用的是记事本++吗?如果是这样,只需点击 Ctrl + H
然后执行以下操作:
- 查找内容:
.*(<b\s[^>]*>.*<\/b>).*
- 替换为:
</code></li> <li>搜索模式:<code>Regular Expressions
- 勾选"Matches newlines"
- 单击 "Replace" 并完成