[英]Reg Exp for string in Javascript
我正在尋找在JavaScript中創建一個常規exp來尋找諸如${.............}
類的模式。 假設是否有類似的字符串
{
"type" : "id",
"id" : ${idOf('/tar/check/inof/high1')},
"details" : [
{
"name" : "Sanio",
"sig" : "DA123QW"
},
{
"name" : "Tarer",
"sig" : "BAWE3QW"
},
{
"name" : "Kadek",
"sig" : "KSWE2J"
},
]
},
因此,我正在搜索具有$ {whateverhere}的所有模式
我正在嘗試
var pathRegExp = /\$(.*)\}/;
但是它不以“}”符號結尾。
如果要匹配${...}
模式,則可以使用此正則表達式:
\$\{.*?\}
另一方面,如果要捕獲${...}
的內容,則可以使用如下捕獲組:
\$\{(.*?)\}
^---^--- Capture here
匹配信息為:
MATCH 1
1. [38-67] `idOf('/tar/check/inof/high1')`
MATCH 2
1. [199-209] `anotherOne`
如果你看一看的Code generator
部分,您可以找到這個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默認情況下是貪婪的,並且默認情況下正在尋找最后一個}
。
這是您要查找的正則表達式:
\$\{[^}]*\}
這樣,它與'}'的第一個匹配項匹配,因為[^}]的意思是“匹配除'}'以外的任何字符”。
您忘記了花括號{
這應該工作:
/\$\{(.*)\}/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.