正则与文本处理指南
正则命名组:可读提取与可选字段
用命名组提取字段,区分可选组未参与匹配和真正匹配空字符串。
为字段设置稳定名称
命名组按名字暴露字段,避免在前面插入组后数字下标全部变化。
先测试一条键值记录,在 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>"}确认环境支持和名称唯一
命名组需要运行环境支持,不同分支复用同名组还有兼容细节,跨环境样例优先使用唯一名称。
提取后仍需校验字符串含义,给组命名不会自动把数字文字转成数字。