ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript 正規表現でキャプチャされたサブグループにアクセスするにはどうすればよいですか?

JavaScript 正規表現でキャプチャされたサブグループにアクセスするにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-19 12:12:20
オリジナル
897 人が閲覧しました

How Do I Access Captured Subgroups in JavaScript Regular Expressions?

JavaScript 正規表現で一致したグループへのアクセス

文字列を正規表現と照合する場合、キャプチャされたサブグループを取得する方法を理解することが重要です。 JavaScript では、これは正規表現内のキャプチャ グループを使用して実現されます。

次の例を考えてみましょう:

var myString = "something format_abc"; // Target substring: "abc"

var arr = /(?:^|\s)format_(.*?)(?:\s|$)/.exec(myString);

console.log(arr); // [" format_abc", "abc"]
console.log(arr[1]); // undefined
console.log(arr[0]); // format_undefined
ログイン後にコピー

未定義の出力の理由:

正規表現は部分文字列「abc」と正しく一致しますが、arr[1] にアクセスすると、console.log ステートメントでの出力が正しくないため、unknown が返されます。 console.log は、文字列 %A を書式設定プレースホルダーとして解釈し、2 番目のパラメーター (この場合は未定義) で置き換えようとします。

一致したグループへのアクセス:

一致したグループを抽出するには、arr[1] を使用します。これは正しく「abc」を返します。

複数の一致の反復 (ES2020):

JavaScript 2020 では、matchAll メソッドが導入されました。これは、次の目的で使用できる反復子を生成します。文字列内のすべての一致を反復処理します。

const string = "something format_abc";
const regexp = /(?:^|\s)format_(.*?)(?:\s|$)/g;
const matches = string.matchAll(regexp);

for (const match of matches) {
  console.log(match);
  console.log(match.index);
}
ログイン後にコピー

このアプローチは、よりクリーンで、複数の一致を処理するためのより直感的な方法。

以上がJavaScript 正規表現でキャプチャされたサブグループにアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート