テキストから特定のパターンの値を抽出しようとしています。正規表現での正規表現の一致値
サンプルテキスト:
Test: []
subtests: [a]
私は、サブテストの[]
内のデータに何を正確ラインsubtests: [a]
を抽出したいですか。 正規表現と一致すると、間違った値が返されます。私がここで間違っていることを確かめない。
https://jsfiddle.net/k8e9hu0e/2/
誰も私を助けることはできますか?
テキストから特定のパターンの値を抽出しようとしています。正規表現での正規表現の一致値
サンプルテキスト:
Test: []
subtests: [a]
私は、サブテストの[]
内のデータに何を正確ラインsubtests: [a]
を抽出したいですか。 正規表現と一致すると、間違った値が返されます。私がここで間違っていることを確かめない。
https://jsfiddle.net/k8e9hu0e/2/
誰も私を助けることはできますか?
ここにはWorking Fiddleがあります。その中にキャプチャを持っている^subtests: (.*)
..あなたの問題を説明する(.*)
.*
へ
を変更し、この正規表現:だから唯一の変化はcaptures
すなわちを削除することでした。そして、あなたがこの正規表現のマッチを見つけたら、それは正規表現マッチのすべてを取得し、次にすべてのキャプチャを返します。したがって、最初のセットはsubtests: []
で、次にキャプチャのセットは[]
です。したがって、あなたの出力はsubtests: [],[]
でした(,
に注意してください)。
これを明確にしてくれてありがとう:) – Reddy
@Reddyこれが正しい解決策だったら、答えとしてマークすることができます。 –
正しい解決策かもしれませんが、説明は正しくありません。 *はすべての正規表現マッチのセットを提供します* - 'RegExp#exec'はすべてのマッチの配列を生成しません。すべての*マッチを得るためにループを使用する必要があります*。 –
ここにライブデモがあります。フォークされ、あなたのソースから修正されました。 https://jsfiddle.net/soonsuweb/aj38617b/
var data = `blur blur subtests: [] blur\nblur`;
var regex = /subtests: \[.*\]/;
var test = regex.exec(data);
alert("Op: " + test);
すべての試合を通じて、 '/ G'グローバル修飾子とループを使用してください。 '[...]'の中に内容が必要な場合は、キャプチャグループが必要です。 [このフィドル](https://jsfiddle.net/h8bf0ox5/)をチェックしてください。 –
@WiktorStribiżew、あなたはコードを修正してコミュニティに解決策を提示していただけますか?私は正規表現には新しく、それは私のような他の人には役に立ちます – Reddy
https://jsfiddle.net/h8bf0ox5/をチェックしてください。または、一致する値だけを表示する必要がある場合は、 '.exec(string)[0]'を使用してください - https://jsfiddle.net/u1paL0y2/ –