--- title: 数量詞 slug: Web/JavaScript/Guide/Regular_Expressions/Quantifiers tags: - Guide - JavaScript - Reference - Regular Expressions - quantifiers - regex translation_of: Web/JavaScript/Guide/Regular_Expressions/Quantifiers ---
{{jsSidebar("JavaScript Guide")}}
数量詞は、一致させる文字や式の数を示します。
注: 以下の表の中で、項目は単一の文字だけでなく、文字クラス、Unicode プロパティエスケープ、グループと範囲を示すこともあります。
文字 | 意味 |
---|---|
x* |
直前の項目 "x" の 0 回以上の繰り返しに一致します。例えば |
x+ |
直前の項目 "x" の 1 回以上の繰り返しに一致します。 |
x? |
直前の項目 "x" の 0 回か 1 回の出現に一致します。例えば
|
x{n} |
"n" には正の整数が入ります。直前の項目 "x" がちょうど "n" 回出現するものに一致します。例えば |
x{n,} |
"n" には正の整数が入ります。直前の項目 "x" の少なくとも "n" 回の出現に一致します。例えば、 |
x{n,m} |
"n" には 0 と正の整数が、 "m" には "n" より大きい正の整数が入ります。直前の項目 "x" が少なくとも "n" 回、多くても "m" 回出現するものに一致します。例えば |
|
既定では
|
var wordEndingWithAs = /\w+a+\b/; var delicateMessage = "This is Spartaaaaaaa"; console.table(delicateMessage.match(wordEndingWithAs)); // [ "Spartaaaaaaa" ]
var singleLetterWord = /\b\w\b/g; var notSoLongWord = /\b\w{1,6}\b/g; var loooongWord = /\b\w{13,}\b/g; var sentence = "Why do I have to learn multiplication table?"; console.table(sentence.match(singleLetterWord)); // ["I"] console.table(sentence.match(notSoLongWord)); // [ "Why", "do", "I", "have", "to", "learn", "table" ] console.table(sentence.match(loooongWord)); // ["multiplication"]
var britishText = "He asked his neighbour a favour."; var americanText = "He asked his neighbor a favor."; var regexpEnding = /\w+ou?r/g; // \w+ 1 つ以上の文字 // o "o" が続く // u? 省略可能で "u" が続く // r "r" が続く console.table(britishText.match(regexpEnding)); // ["neighbour", "favour"] console.table(americanText.match(regexpEnding)); // ["neighbor", "favor"]
var text = "I must be getting somewhere near the centre of the earth."; var greedyRegexp = /[\w ]+/; // [\w ] ラテンアルファベットまたは空白 // + 1 回以上 console.log(text.match(greedyRegexp)[0]); // "I must be getting somewhere near the centre of the earth." // テキストのすべてに一致 (ピリオドを除く) var nonGreedyRegexp = /[\w ]+?/; // クエスチョンマークに注目 console.log(text.match(nonGreedyRegexp)); // "I" // 一致する箇所は取りうる最も短い 1 文字