簡體   English   中英

Reg Exp為Javascript中的字符串

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM