Notepad++/Sublime Text3正则替换时如何退格并调整文本格式
解决方案
需求1:合并问答换行并加粗答句首句
针对问答分两行的文本(问句单独一行,答句首句单独一行),调整正则规则如下:
- 搜索正则:
(^[^?]*\?)\s*\n([^.]+) - 替换规则:
$1 <b>$2</b>
说明
- 正则先匹配以问号结尾的整行问句(
(^[^?]*\?)),再匹配问答之间的换行符及前后空白(\s*\n),最后捕获答句的首句内容(([^.]+),即句号前的所有字符)。 - 替换时将换行符替换为空格,同时把答句首句用
<b>标签包裹,实现问句与加粗答句在同一行。
需求2:处理带✔标记的文本
针对每行开头带✔的文本,需提取问句单独成行并加粗原行中的问句,规则如下:
- 搜索正则:
^✔\s*([^?]*\?)(.*) - 替换规则:
$1\n✔ <b>$1</b>$2
说明
- 正则匹配开头的
✔及后续空白(^✔\s*),分别捕获问句内容(([^?]*\?))和剩余的答句内容((.*))。 - 替换时先输出单独一行的问句,再保留原行的
✔标记并将问句用<b>标签加粗,最后拼接剩余答句内容,达到要求的格式效果。
工具适配注意
- Notepad++中使用时,需勾选搜索面板的「正则表达式」模式,确保编码兼容。
- Sublime Text 3中使用时,开启正则搜索模式(快捷键
Ctrl+R切换),该正则语法可直接适配。
内容的提问来源于stack exchange,提问作者Regue
相关产品推荐
相关产品推荐

