--- title: グループと範囲 slug: Web/JavaScript/Guide/Regular_Expressions/Groups_and_Ranges tags: - Guide - JavaScript - Reference - Regular Expressions - regex translation_of: Web/JavaScript/Guide/Regular_Expressions/Groups_and_Ranges ---
{{jsSidebar("JavaScript Guide")}}{{draft}}
グループと範囲は、式にある文字のグループと範囲を示します。
文字 | 意味 |
---|---|
x|y |
"x" または "y" にマッチします。例えば |
[xyz] |
文字集合です。角括弧で囲まれた文字のいずれか 1 個にマッチします。ハイフンを用いて文字の範囲を指定することも可能ですが、ハイフンが括弧に囲まれた最初または最後の文字に現れている場合、それはハイフンリテラルとみなされて、通常文字として文字集合に含まれます。文字集合には文字クラスを含めることができます。 例えば 例えば、 例えば、 |
|
文字集合の否定または補集合です。角括弧で囲まれた文字ではない文字にマッチします。ハイフンを用いて文字の範囲を指定することも可能ですが、ハイフンが括弧に囲まれた最初または最後の文字に現れている場合、それはハイフンリテラルとみなされて、通常文字として文字集合に含まれます。例えば ^ 文字は入力の先頭を示すこともできます。 |
(x) |
キャプチャグループ: 正規表現は複数のキャプチャグループを持つことができます。結果、一般的にキャプチャグループ内の左括弧と同じ順にある、配列の要素のキャプチャグループに一致しています。たいていの場合、これはキャプチャグループ自身の順番です。これはキャプチャグループがネストしている場合に重要です。マッチは結果の要素のインデックス ( キャプチャグループはパフォーマンスペナルティがあります。マッチした部分文字列を使わない場合はキャプチャしない括弧(後述)を使ったほうがいいでしょう。 全体マッチ ( |
\n |
|
(?<Name>x) |
名前付きキャプチャグループ: 例えば、電話番号からアメリカのエリアコードを取り出す際、 |
(?:x) |
非キャプチャグループ: |
var aliceExcerpt = "There was a long silence after this, and Alice could only hear whispers now and then."; var regexpVowels = /[aeiouy]/g; console.log("母音の数:", aliceExcerpt.match(regexpVowels).length); // 母音の数: 25
let personList = `First_Name: John, Last_Name: Doe First_Name: Jane, Last_Name: Smith`; let regexpNames = /First_Name: (\w+), Last_Name: (\w+)/mg; let match = regexpNames.exec(personList); do { console.log(`Hello ${match[1]} ${match[2]}`); } while((match = regexpNames.exec(personList)) !== null);
let personList = `First_Name: John, Last_Name: Doe First_Name: Jane, Last_Name: Smith`; let regexpNames = /First_Name: (?<firstname>\w+), Last_Name: (?<lastname>\w+)/mg; let match = regexpNames.exec(personList); do { console.log(`Hello ${match.groups.firstname} ${match.groups.lastname}`); } while((match = regexpNames.exec(personList)) !== null);
注: すべてのブラウザがこの機能をサポートしているわけではありません。以下の互換性の表を参照してください。
仕様 | 策定状況 | コメント |
---|---|---|
{{SpecName('ESDraft', '#sec-classranges', 'RegExp: Ranges')}} | {{Spec2('ESDraft')}} |
{{Compat("javascript.builtins.RegExp.groups_ranges")}}