は、この例を見てみましょう:私の(クローム)コンソールに上記の行javascriptのmatch()regex関数は何を返すべきですか?
"12345".match(/(?=(\d{4}))/g);
の貼り付けは、私のために["", ""]
を返しているが、私は["1234", "2345"]
の配列を抽出しようとしています。 This MDN articleは、実際には、一致の配列を期待する必要があることを示しているようです。
この正確な文字列の特定の正規表現は、確かに昨日からthis questionで証明された一致を返します。
この機能に関する誤った仮定をしている、または誤って使用している場合は、期待される動作がどのようなものであるべきか、私がここで取ることができる代替方法を明確にしてください。
(1) "234"が両方の希望の一致に含まれているので、複数の一致でソース文字列内の同じ文字を一致させることはできません。 (2)先読みは先読みしている文字をキャプチャしていないので、空の文字列を取得するのはこのためです。 – trincot
あなたは答えから正規表現を盗むことはできませんが、正規表現を使用するコードは無視してください。 Chromeは、コードに期待される出力を生成します。あなたがリンクした答えに含まれているコードを使用すると、結果が得られます。 –
@Rawing - コメントの中で私が言ったように、コードは無限ループに陥ってしまった。私は今日後でそれを再訪するつもりですが、 'match()'はもっと短くて読みやすいように私にもっとアピールしました。 – DaveHolt