JavaScript 正規表現グループ

Shraddha Paghdar 2023年6月20日
JavaScript 正規表現グループ

正規表現は、特定の文字列の文字または単語の組み合わせに一致するパターンです。 正規表現も JavaScript のオブジェクトです。

これらのパターンは、RegExp の test() および exec() と、メソッド matchAll() match()replaceAll()replace()search()split() の文字列。

今日の投稿では、JavaScript の正規表現グループについて学びます。

JavaScript の正規表現グループ

パターンの一部は、括弧 (...) で囲むことができます。 これは、キャプチャ グループと呼ばれます。

これには 2つの効果があります。

  1. 一致の一部を結果配列の個別の要素として保持できます。
  2. 括弧の後に数量詞を置くと、括弧全体に適用されます。

構文:

const re = /ab+c/;
const re = new RegExp('ab+c');

上記の構文は、通常の正規表現パターンを示しています。 先読みアサーションには、positivenegative の 2つの方法があります。

肯定先読みの構文は (?=...) です。 否定先読みの構文は (?!...) です。 前方否定は、パターンが特定のパターンに従わないことを表明します。

ES2018 は、先読みアサーションを JavaScript に統合することにより、先読みアサーションを補完します。 (?<=...) でマークされたバックスペース アサーションを使用すると、別のパターンが前にある場合にのみパターンに一致させることができます。

グループと範囲の詳細については、グループと範囲 のドキュメントを参照してください。

名前取得グループ

文字を括弧で囲むことにより、正規表現の一部をグループ化できます。 これにより、交替をパターンの一部に制限したり、グループ全体にクオンタイザーを適用したりできます。

また、括弧内の一致する値を抽出して、さらに処理することもできます。

次のコードは、文字列内の年、月、日を検索する方法の例を示しています。

const regEx = /(\d{4})-(\d{2})-(\d{2})/;
const matchedPattern = regEx.exec('2022-04-22');

console.log(matchedPattern[0]);
console.log(matchedPattern[1]);
console.log(matchedPattern[2]);
console.log(matchedPattern[3]);

上記の例では、年、月、日の正規表現を定義しました。 最後に、指定された文字列に対して正規表現を実行すると、パターンがキャプチャされ、一致するグループでグループ化されます。

パターンは年、月、日であることを覚えておく必要があります。 正規表現全体が実行されると、次のような結果が出力されます。

出力:

"2022-04-22"
"2022"
"04"
"22"

上記の問題の解決策は、グループをキャプチャすることです。 最も高度なバージョンは、(?<name>...) の形式でより表現力豊かな構文を使用してグループをキャプチャしています。

const regEx = /(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})/;
const matchedPattern = regEx.exec('2022-03-22');

console.log(matchedPattern.groups);
console.log(matchedPattern.groups.year);
console.log(matchedPattern.groups.month);
console.log(matchedPattern.groups.day);

上記の例では、年の正規表現を定義し、その年に名前を付けました。 同様に、月と日の正規表現を定義しました。

最後に、指定された文字列に対して正規表現を実行すると、パターンがキャプチャされ、一致するグループでグループ化されます。 正規表現全体が実行されると、次のような結果が出力されます。

出力:

{
    day: "22",
    month: "03",
    year: "2022"
}
"2022"
"03"
"22"

こちら から完全なコードにアクセスすることもできます。

Shraddha Paghdar avatar Shraddha Paghdar avatar

Shraddha is a JavaScript nerd that utilises it for everything from experimenting to assisting individuals and businesses with day-to-day operations and business growth. She is a writer, chef, and computer programmer. As a senior MEAN/MERN stack developer and project manager with more than 4 years of experience in this sector, she now handles multiple projects. She has been producing technical writing for at least a year and a half. She enjoys coming up with fresh, innovative ideas.

LinkedIn

関連記事 - JavaScript RegEx