如何仅将脚本中包裹数字的方括号替换为下划线
特定方括号替换为下划线的实现方法
直接使用正则表达式匹配替换即可,该方案可以精准命中[数字]格式的内容,不会误改其他用于代码语法的方括号,单线上百处匹配场景也可以一次处理完成。
核心匹配规则
- 查找正则(匹配纯数字包裹的方括号对):
\[(\d+)\] - 替换规则:将匹配到的内容替换为
_$1_,其中$1代表正则捕获到的括号内的数字内容
不同场景操作方式
- 代码编辑器(VS Code/Sublime Text/Notepad++等):
按快捷键Ctrl+H(macOS为Cmd+Opt+F)调出替换面板,勾选「正则表达式」选项,查找输入框填入上述正则规则,替换输入框填入_$1_,点击全部替换即可完成处理。 - Python脚本批量处理:
直接调用re模块的sub方法做正则替换,示例代码如下:
运行后输出结果:import re # 待处理的原始代码 raw_content = "[list [get_pins [change $ate2[7]]] [get_pins $ut2_mi[24]]] -to [get_pins $abc[2]]" # 执行替换 processed_content = re.sub(r'\[(\d+)\]', r'_\1_', raw_content) # 输出结果和预期完全一致 print(processed_content)[list [get_pins [change $ate2_7_]] [get_pins $ut2_mi_24_]] -to [get_pins $abc_2_]]
匹配说明
该正则只会匹配括号内仅包含1位及以上阿拉伯数字的方括号对,代码中用于包裹命令、变量名的其他方括号因为内部不是纯数字内容,不会被误修改,适配单行超百处待替换的场景。
内容的提问来源于stack exchange,提问作者esahc
相关产品推荐
相关产品推荐

