在EmEditor中使用正则查找并移除HTML的head区块失败,求解决
解决EmEditor正则移除HTML head区块的问题
你的正则表达式失效,核心原因是EmEditor默认未开启多行匹配支持,以及换行符的处理没覆盖所有情况。按以下步骤调整即可解决:
操作步骤
- 打开查找替换对话框(快捷键
Ctrl+H),勾选「正则表达式」选项。 - 点击正则表达式选项旁的「...」按钮,在弹出的设置窗口里勾选**「. 匹配换行符」**(这会让
.直接匹配包括换行在内的所有字符,无需手动写(.|\n))。 - 使用以下非贪婪匹配的正则表达式:
替换框留空,执行替换即可移除整个head区块。<head[\s\S]*?</head>
备选方案(无需修改正则选项)
如果不想调整编辑器设置,也可以用覆盖Windows/Linux换行符的表达式:
<head(?:.|\r\n|\n)*?</head>
额外注意
- 如果HTML里存在大写的
<HEAD>标签,需勾选正则选项里的「忽略大小写」,或者用大小写兼容的表达式:<[Hh][Ee][Aa][Dd][\s\S]*?</[Hh][Ee][Aa][Dd]> - 务必用
*?非贪婪匹配,避免出现单个表达式匹配多个head区块(或误匹配到后续内容)的情况。
内容的提问来源于stack exchange,提问作者gwehydd
相关产品推荐
相关产品推荐

