0

括弧のペアの中にすべての文字列を入れたかったのです。たとえば、正規表現を適用した後

"fun('xyz'); fun('abcd'); fun('abcd.ef') { temp('no'); " 

出力は

['xyz','abcd', 'abcd.ef'].

多くのオプションを試しましたが、希望する結果を得ることができませんでした。1つのオプションは
/fun\((.*?)\)/gi.exec("fun('xyz'); fun('abcd'); fun('abcd.ef')")です。

4

3 に答える 3

1

正規表現を変数に格納し、ループで実行します...

var re = /fun\((.*?)\)/gi,
    string = "fun('xyz'); fun('abcd'); fun('abcd.ef')",
    matches = [],
    match;

while(match = re.exec(string))
    matches.push(match[1]);

これはグローバル正規表現でのみ機能することに注意してください。を省略するgと、無限ループになります。

)また、引用符の間にある場合、望ましくない結果が生じることに注意してください。

于 2012-07-30T20:59:32.330 に答える
0

あなたはこのコードを使うことができますほとんど仕事をします:

"fun('xyz'); fun('abcd'); fun('abcd.ef')".match(/'.*?'/gi);

文字列の周り["'xyz'", "'abcd'", "'abcd.ef'"]に余分なものが含まれているものを取得します。'

于 2012-07-30T21:09:41.087 に答える
0

必要なものを見つける最も簡単な方法は、この正規表現を使用することです。/[\w.]+(?=')/g

var string = "fun('xyz'); fun('abcd'); fun('abcd.ef')";
string.match(/[\w.]+(?=')/g); // ['xyz','abcd', 'abcd.ef']

英数字とポイントで機能します[\w.]+。記号を追加するには、変更する必要があります。

于 2012-08-01T05:34:44.247 に答える