正则与文本处理指南

正则命名组:可读提取与可选字段

用命名组提取字段,区分可选组未参与匹配和真正匹配空字符串。

Nav Tools ·

为字段设置稳定名称

命名组按名字暴露字段,避免在前面插入组后数字下标全部变化。

先测试一条键值记录,在 JavaScript 中检查匹配对象,本站也采用此正则方言。

const m = /^(?<key>[a-z]+)=(?<value>\d+)$/.exec('count=42');
m.groups → {key:'count',value:'42'}

检查可选组是否参与

可选分支没有参与时,命名组可能是 undefined;参与了但匹配零字符时则是空字符串。

解析规则如果区分这两种状态,不能只用真假值判断。

/^(?<name>[a-z]+)(?:=(?<value>\d*))?$/.exec('count').groups.value → undefined
Same pattern on 'count=' → ''

替换模板使用名字

JavaScript 替换模板可用

lt;name> 引用命名组,让字段重排更易读。

本站正则替换通过 JSON 输入 pattern、flags 与 replacement,反斜杠需要遵守 JSON 层的转义规则。

{"pattern":"(?<key>[a-z]+)=(?<value>\\d+)","flags":"g","replacement":"
lt;value>:
lt;key>"}

确认环境支持和名称唯一

命名组需要运行环境支持,不同分支复用同名组还有兼容细节,跨环境样例优先使用唯一名称。

提取后仍需校验字符串含义,给组命名不会自动把数字文字转成数字。

参考资料

← 正则与文本处理指南