2023 © RegexOne
メール | Twitter
注意: 下記の反復構文の一部は、すべての正規表現実装でサポートされているわけではありません。
これまで、マッチさせたい文字の範囲を指定する方法を学びましたが、マッチさせたい文字の繰り返し回数はどのように指定すればよいでしょうか?その1つの方法として、必要な文字数を明示的に記述する方法があります。たとえば、\d\d\dは、3桁の数字に完全に一致します。
より便利な方法は、中括弧記法を使用して、各文字の繰り返しの回数を指定する方法です。たとえば、a{3}は、文字aと完全に3回一致します。一部の正規表現エンジンでは、この反復の範囲を指定することもできます。例えば、a{1,3}は、文字aと最大3回まで、しかし少なくとも1回は一致します。
この量指定子は、任意の文字や特殊なメタ文字と一緒に使用できます。例えば、w{3}(3つのw)、[wxy]{5}(5つの文字で、それぞれw、x、またはyのいずれか)、そして .{2,6} (2文字から6文字までの任意の文字)のようにです。
以下の行では、最後の1つのzしかない文字列は、スラング「wazzup?」の正しい綴りとは見なされません。上記の中括弧記法を使用して、最初の2つの綴りだけをマッチさせるパターンを書いてみてください。
| 課題 | テキスト | |
| マッチ | wazzzzzup | ![]() |
| マッチ | wazzzup | ![]() |
| スキップ | wazup | ![]() |
| 解答 | 最初にマッチさせたい2行には、いくつか 'z' があるので、式 waz{3,5}up はその数の 'z' を持つすべての文字列と一致します。 |