2017-05-08 67 views
1

我有以下字符串:正則表達式停止不工作

'"var1":"val1","var2":"val2","var3":"val3"' 

我想通過正則表達式來提取VAL2

/var2":"(.*)"/g 

得到VAR2之後一切 「:」

/var2":"(?=[^"])"/g 

沒有得到任何匹配

+0

您使用哪種語言/編輯器?對正則表達式的影響。 –

回答

1

你的se COND正則表達式是不正確的,應該是

/var2":"([^"]*)"/g 

說明:

(?=[^"])"表示:「首先要確保下一個字符是什麼,但一個"。然後匹配"。這顯然是一個)不可能和b)你想不是:)

與此相反的是,([^"]*)表示:「匹配任意數量(包括零)不在"的人物,那麼捕獲子匹配組1 「。

0

我覺得你快到了。您需要用一個簡單的組來替換lookahead。此外,需要的字符類後添加*

var2":"([^"]*)" 

這將匹配整個"var2":"..."和第一組將包含val1

我添加了一些可選空間結腸周圍(demo):

var2" *: *"([^"]*)" 

雖然有一個警告:在var2的值不能包含引號。

0

javascript javascript?請嘗試:/var2":"(.*?)"/g或/ var2「:」(?:[^「] +?)」/ g