2016-08-18 6 views
-2

jsの正規表現の後にマッチを得ることは可能ですか?jsの特定の正規表現の後にマッチする

私はstrを次のように仮定します。

fun.call("className.serviseName"[, arg1[, arg2[, ...]]]) 

blablablabalbalbabalabalbal 

fun.call("className2.serviseName2"[, arg1[, arg2[, ...]]]) 

は私だけ "className.serviseName"と "className2.serviseName2" を取得したい `

私はこれまで何をしましたか?

var str = 'fun.call("className.serviseName"[, arg1[, arg2[, ...]]])'; 
 
var arr = str.match(/fun.call\(\".*\"/g); // returns ["fun.call("className.serviseName""]
しかし、私は唯一と正確に取得したい: className.serviseName

答えて

-1

className2.serviseName2はブレーサー()に一致する部分を入れて、その後、戻って配列のインデックスとそれを選択します。グローバル化しないでください(g)。

var str = 'fun.call("className.serviseName"[, arg1[, arg2[, ...]]])'; 
 
var arr = str.match(/fun.call\(\"(.*)\"/)[1]; 
 

 
console.log(arr);

あなたは1 stringで複数の結果を待つ場合は、regexでループを行う必要があります。世界的にgが必要です。

var str = 'fun.call("className.serviseName"[, arg1[, arg2[, ...]]])fun.call("className.serviseName2"[, arg1[, arg2[, ...]]])'; 
 
var regEx = /fun.call\(\"(.+?)\"/g; 
 
var match; 
 

 
while(match = regEx.exec(str)) { 
 
    console.log(match[1]); 
 
}

+2

'G'フラグは_ _ "貪欲" を意味するものではありません。それは_ "グローバル" _です。 – Cerbrus

+0

しかし、私は解析したいテキストの中にこの正規表現を何千も持つことができるので、それらのすべてを取得したい。だから私はgを使うことを考えているのです – user6468132

+0

'g'フラグの関数は、正規表現の" greedy "の概念とは無関係です。 – Cerbrus

0

var str = 'fun.call("className.serviseName"[, arg1[, arg2[, ...]]])'; 
 
str = str.split('"'); 
 
console.log(str[1]);

+0

なぜjQueryをインクルードしましたか? – Cerbrus

+0

削除するのを忘れました... :)編集のために@Cerbrusに感謝します。次回は、あなたが行った変更に注意を払います –

関連する問題