Notepad++使用正则跨多行匹配合并Anim函数前置参数赋值行
Notepad++ 正则合并Anim参数赋值行方案
操作前置设置
- 按快捷键
Ctrl+H调出Notepad++替换面板 - 查找模式选择正则表达式
- 取消勾选「. 匹配换行」选项
- 操作前建议备份原文件,避免误修改
正则配置
- 查找目标输入框填写:
^(\s*[a-z]{2}\s*=\s*.*?;)\R(?=\s*[a-z]{2}\s*=)
- 替换为输入框填写:
$1
注意:
$1后需要输入一个半角空格,用于分隔合并后的相邻赋值语句
执行操作
反复点击「全部替换」按钮,直到弹出提示「已替换0个匹配项」即可。单次替换仅能合并当前处于行首的相邻赋值行,多轮替换后会逐步将所有连续赋值行拼接为完整单行。
正则逻辑说明
^(\s*[a-z]{2}\s*=\s*.*?;):匹配行首起始的完整赋值行,将整行内容捕获到分组1:\s*匹配行首任意缩进空格[a-z]{2}匹配固定两位小写字母的变量名\s*=\s*匹配等号及前后的任意空白字符.*?;以非贪婪模式匹配到行尾分号,兼容赋值内容含算术运算的场景
\R:匹配任意类型换行符,兼容Windows CRLF、Unix LF、Mac CR等不同换行格式的文件(?=\s*[a-z]{2}\s*=):正向预查规则,仅当换行后紧跟另一条两位变量的赋值行时才触发匹配,保证最后一条赋值行和后续Anim()函数调用行之间的换行不会被替换,Anim行完全保留原有格式
适配范围
该方案可覆盖所有符合规则的代码场景:
- 支持参数顺序任意排列的赋值块
- 支持缺省部分参数的不完整赋值块
- 不会误匹配非Anim代码块前的零散赋值语句
- 合并后完全保留原有缩进、代码内容和Anim函数行格式
内容的提问来源于stack exchange,提问作者CurtisD
相关产品推荐
相关产品推荐

