我希望构建一个JavaScript函数,将文本转换为另一种格式,例如:
到这个:
我一直在使用正则表达式替换来调试Chrome浏览器控制台中的代码,但它不会替换任何内容。以下是我尝试过的其中一种方法,
MATCH 1
1. [4-17] `public direct`
2. [18-29] `routing.key`
MATCH 2
1. [35-41] `direct`
2. [42-52] `routingkey`
到这个:
MATCH 1: [Group 1: public direct] [Group 2: routing.key]
MATCH 2: [Group 1: direct] [Group 2: routingkey]
我一直在使用正则表达式替换来调试Chrome浏览器控制台中的代码,但它不会替换任何内容。以下是我尝试过的其中一种方法,
a
是测试对象,问题出在第二个替换上:a = "MATCH 1 \n\
1. [4-17] `public direct` \n\
2. [18-29] `routing.key` \n\
MATCH 2 \n\
1. [35-41] `direct` \n\
2. [42-52] `routingkey`"
var repl = a.replace(/^(MATCH\s\d+)\s*/gm, "$1: ")
.replace(/(\d+)\.\s+\[[^]]+\]\s*`([^`]*)`\s*/g, "[Group $1: $2]")
.replace(/(?=MATCH\s\d+: )/g, "\n")
console.log(repl)
学习regex101演示,模式/(\d+)\.\s+\[[^]]+\]\s*`([^`]*)`\s*/g
可以在PHP(PCRE)中正确替换 和Python, 但不能在JavaScript中使用。
为什么?