正規表現における文字繰り返し演算子
文字が指定された回数繰り返されることを示したい状況があります。
正確な繰り返し回数がわかっている場合は、単にそれを複数回書けばよいです
- /aaaa/。しかし、「1回以上繰り返す」と言いたい場合はどうすればよいでしょうか?
このために、繰り返し演算子(量指定子)があります:プラス +(1回以上)、
アスタリスク *(0回以上)、クエスチョンマーク ?(0回または1回)。
これらの演算子は、その直前にある文字に作用します。
例を使ってこれらの演算子の動作を見てみましょう。
例
パターン 文字 'x'、文字 'a' 1回以上、
文字 'x' に一致するすべての部分文字列を見つけます:
let str = 'xx xax xaax xaaax xbx';
let res = str.replace(/xa+x/g, '!');
結果、変数には以下が書き込まれます:
'xx ! ! ! xbx'
例
パターン 文字 'x'、文字 'a' 0回以上、
文字 'x' に一致するすべての部分文字列を見つけます:
let str = 'xx xax xaax xaaax xbx'
let res = str.replace(/xa*x/g, '!');
結果、変数には以下が書き込まれます:
'! ! ! ! xbx'
例
パターン 文字 'x'、文字 'a' 0回または1回、
文字 'x' に一致するすべての部分文字列を見つけます:
let str = 'xx xax xaax xbx';
let res = str.replace(/xa?x/g, '!');
結果、変数には以下が書き込まれます:
'! ! xaax xbx'
実践的な課題
次の文字列が与えられます:
let str = 'aa aba abba abbba abca abea';
パターン:文字 'a'、文字 'b' 任意の回数、
文字 'a' に基づいて、文字列
'aba'、'abba'、'abbba'
を見つける正規表現を書いてください。
次の文字列が与えられます:
let str = 'aa aba abba abbba abca abea';
パターン:文字 'a'、文字 'b' 任意の回数
(0回も含む)、文字 'a' に基づいて、文字列
'aa'、'aba'、'abba'、
'abbba' を見つける正規表現を書いてください。
次の文字列が与えられます:
let str = 'aa aba abba abbba abca abea';
パターン:文字 'a'、文字 'b' 1回または0回、
文字 'a' に基づいて、文字列
'aa'、'aba'
を見つける正規表現を書いてください。
次の文字列が与えられます:
let str = 'aa aba abba abbba abca abea';
'abca' と 'abea' を除き、
'aa'、'aba'、'abba'、
'abbba' を見つける正規表現を書いてください。