操作步骤
打开 Notepad++。按下快捷键 Ctrl + H 打开“查找和替换”窗口。
在“查找内容”框中输入改进后的正则表达式:
(?<!')\$add\[([^\'\$\!\]]+?)(?<!\d)\]
纯数字用这个
(?<!')\$add\[([^\'\$\!\]]+?)\](?<!\[\d+\])
在“替换为”框中输入:
$add['\1']
勾选“正则表达式”选项。点击“全部替换”。
注意事项
Notepad++ 的正则表达式支持 :确保你的 Notepad++ 版本支持负向后顾((?<!...))。建议使用 v7.8 或更高版本。
如果你的版本不支持负向后顾,可以考虑升级 Notepad++。
复杂情况 :
如果 $add[] 前面可能有其他字符(如空格或其他符号),需要进一步调整正则表达式。例如,允许 $add[] 前面有空格,可以将 (?<!') 改为 (?<![\'\s])。
纯数字的定义 :
当前正则表达式通过 (?<!\d) 确保中括号内的内容最后一位不是数字,从而排除纯数字的情况。
如果需要更严格地排除纯数字(例如完全由数字组成),可以将正则表达式调整为:
(?<!')\$add\[([^\'\$\!\]]+?)\](?<!\[\d+\])
复杂情况 :如果 $add[] 中括号内存在嵌套结构(如 $add[test[subtest]]),当前正则表达式无法处理。这种情况下需要使用更复杂的解析工具(如 Python 或 PHP 脚本)。