我想使用javascript regexp解析带注释的我的bind9区域文件,我在https://regex101.com/r/qnoZbK/1上对其进行了测试,但是我无法在Chrome开发工具中获取组名。
测试代码为
const contents = `; the is some comment
name1 IN CNAME value1
name2 IN A value2
;name3 IN A value3
; the is another comment
name4 IN A value4`
const regexp = /(?:^;\s*(?<comment>.+?)\s*$\n)?^\s*(?!;)(?<name>.*?)\s+(?<className>.*?)\s+(?<type>.*?)\s+(?<value>.*?)$/gm
const matches = contents.matchAll(regexp)
for (const match of matches) {
console.info(match)
}
以下是我的Chrome浏览器的快照
答案 0 :(得分:0)
最后,我发现了问题所在,这是因为我在项目中使用了babel,项目中的regexp是通过babel插件(https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-named-capturing-groups-regex)包装的,并且其版本过旧并且可能包含此内容一种错误。
我可以通过yarn upgrade
或ncu -u && yarn
更新依赖关系来解决此问题。希望其他有相同问题的人可以从这篇文章中获得帮助。
答案 1 :(得分:0)