Sublime Text代码片段多正则替换:单变量驱动三规则实现
整合Sublime Text代码片段实现多步接口名转换
我帮你把这三个正则转换逻辑整合到一个Sublime Text代码片段里,这样输入任意路由器接口名称就能一次性完成所有要求的转换了。
完整代码片段
先创建一个新的代码片段(通过Tools -> Developer -> New Snippet),然后粘贴以下内容:
<snippet> <content><![CDATA[ IS-${${${310/(ae)/\U$1/g}/^\w{2}-//g}/\//_/g}-BUSINESS ]]></content> <tabTrigger>intbus</tabTrigger> <scope>text.plain</scope> <description>生成业务接口ID(从路由器接口名转换)</description> </snippet>
逻辑拆解
这个片段用了嵌套正则替换来按顺序完成你的三个需求:
- 最内层替换:
${310/(ae)/\U$1/g}—— 把输入接口名里的小写ae转换成大写AE,确保特殊接口类型的格式正确 - 中间层替换:
${.../^\w{2}-//g}—— 移除开头的两位字母前缀(比如ge-、xe-、fe-这类),只保留后面的数字部分 - 最外层替换:
${.../\//_/g}—— 把所有斜杠/替换成下划线_,符合最终的格式要求
自定义调整
- 你可以修改
<tabTrigger>里的内容,比如改成ifacebus,这样输入这个关键词按Tab就能触发片段 - 如果是在特定配置文件(比如Juniper、Cisco的配置文件)里使用,把
<scope>改成对应文件的作用域,比如source.junos,这样只有在该类型文件中才会触发这个片段
测试案例
测试几个不同类型的接口输入,结果都符合预期:
- 输入
ge-1/2/21→ 输出IS-1_2_21-BUSINESS - 输入
ae0/1/2→ 输出IS-AE0_1_2-BUSINESS - 输入
xe-0/0/0→ 输出IS-0_0_0-BUSINESS - 输入
fe-3/1/15→ 输出IS-3_1_15-BUSINESS
内容的提问来源于stack exchange,提问作者A.D usa
相关产品推荐
相关产品推荐

