検索

ホームページ  >  に質問  >  本文

Javascript 正規表現: 任意の正規表現に対して一致するグループのみを維持するにはどうすればよいですか?

JS 正規表現 API に、一致するグループのみが (順番に) 保持されるように入力を書き換える方法はありますが、任意の正規表現 (グループをキャプチャしない正規表現も含む) で動作しますか?

たとえば、正規表現 /abc([D-F] )gh([I-K] )/ と入力 abcFEEDghKIKI の場合、出力したいのは "FEEDKIKI" 、これらはキャプチャされたパーツであるためです。

ただし、入力正規表現を /([a-zA-Z] )/ にすることもできます。これは、同じ入力に対して元のテキストを返すだけです。

正規表現が /([0-9] )/ の場合、空の文字列が返されます。

正規表現はツールによって生成されますが、正規表現が多数あるため、キャプチャ グループの数が異なる場合に特別なコードを使用する必要はありません。

理想的には、何らかの方法で入力内の一致の長さにアクセスできると思います。

replace() (または同様のもの) に渡されるコールバックを介してこれを達成する何らかの方法があると想定していますが、キャプチャ グループのインデックスをどのように取得できるかどうかは明確ではありません (必要に応じて JS で実行することもできます)。

本質的には、Java の MatchResult API を介して実行できることを再現しようとしています。グループを反復処理し、キャプチャ グループの開始/終了インデックスを見つけることができます。 < /p> ###前もって感謝します!

P粉574695215P粉574695215317日前419

全員に返信(1)返信します

  • P粉071626364

    P粉0716263642024-01-17 15:46:08

    ###発見する:

    JavaScript 正規表現にアクセスするにはどうすればよいですか? (少なくとも最初は) exec() を使用すると、私が望むことができるようです。

    返事
    0
  • キャンセル返事