在JavaScript中注册string的string

我正在寻找在JavaScript中创build一个常规的exp来寻找像${.............} 。 可以说如果有string像

 { "type" : "id", "id" : ${idOf('/tar/check/inof/high1')}, "details" : [ { "name" : "Sanio", "sig" : "DA123QW" }, { "name" : "Tarer", "sig" : "BAWE3QW" }, { "name" : "Kadek", "sig" : "KSWE2J" }, ] }, 

所以我正在寻找所有$ {whateverhere}

我正在尝试

 var pathRegExp = /\$(.*)\}/; 

但它不是以“}”符号结尾。

匹配模式

如果你想匹配${...}模式,那么你可以使用这个正则expression式:

 \$\{.*?\} 

工作演示

在这里输入图像说明

匹配模式和抓取内容

另一方面,如果要捕获${...}内的内容,则可以使用如下捕获组:

 \$\{(.*?)\} ^---^--- Capture here 

工作演示

在这里输入图像说明

比赛信息将是:

 MATCH 1 1. [38-67] `idOf('/tar/check/inof/high1')` MATCH 2 1. [199-209] `anotherOne` 

如果你看看Code generator部分,你可以find这个javascript代码:

 var re = /\$\{(.*?)\}/g; var str = '{\n "type" : "id",\n "id" : ${idOf(\'/tar/check/inof/high1\')},\n "details" : [\n {\n "name" : "Sanio",\n "sig" : "DA123QW"\n },\n {\n "name" : "${anotherOne}",\n "sig" : "BAWE3QW"\n },\n {\n "name" : "Kadek",\n "sig" : "KSWE2J"\n },\n ]\n },'; var m; while ((m = re.exec(str)) != null) { if (m.index === re.lastIndex) { re.lastIndex++; } // View your result using the m-variable. // eg m[0] etc. } 

这听起来就像你需要改变它是这样的:

 var pathRegExp = /\${(.*?)}/g; 

看看这里: Regex101

我让它变得很懒,因为默认情况下Regex是贪婪的,默认情况下是查找最后一个}

这是你正在寻找的正则expression式:

 \$\{[^}]*\} 

这样,它匹配'}'的第一次出现,因为[^}]的意思是“匹配任何字符,但'}'”。

你忘了开大括号{

这应该工作:

 /\$\{(.*)\}/