正規表現「{n}」(直前文字のn回繰り返し)編(その2)

原文ファイルのトリセツ

皆さま、こんにちは。ホンヤク社の成田です。
いよいよ今年も残り10日ほどになりました。皆さまはいかがお過ごしでしょうか。

 

本日は前回に引き続き、「{ }」と数字の組み合わせの正規表現について取り扱います。前回は「{n}」(直前文字をn回繰り返す)「{n,}」(直前文字をn回以上繰り返す)についてお話ししましたが、今回は回数の範囲指定ができる正規表現をご紹介します。

 

{n,m} ※「n」「m」はそれぞれ任意の数字を示し、n<m(mのほうが大きい)です
「直前文字をn回以上m回以下繰り返す」を表す正規表現です。「n」「m」にそれぞれ数字を入力して数を指定してください。「以上」「以下」なので「n」回と「m」回も含まれます。

 

これも、MS Wordワイルドカードと同じ表記法、同じ内容です。ワイルドカードのときと同様の使用例を挙げて詳しくご説明したいと思います。

 

<使用例>
cho{2,4}se
⇒ 「o」を2回以上4回以下繰り返す、という意味のため、「choose」「chooose」「choooose」はヒットしますが「chose」や「chooooose」などはヒットしません。

 

半角スペース{2,5} ※「{」の前に半角スペースを1つ入力するという意味です
⇒ 半角スペースを2回以上5回繰り返す、という意味のため、ダブルスペースから5回連続のスペースまでがヒットします。シングルスペースや6回以上連続のスペースはヒットしません。

 

10{3,5}
⇒ 「1」の後ろに「0」が3回以上5回以下繰り返されている「1000」「10000」「100000」がヒットします。「10」「100」「1000000」などはヒットしません。

 

なお、最後の例では、「1000000」はヒットしないものの、

のように末尾の「0」を抜かした「100000」の部分を拾ってしまうため注意が必要です。また、検索対象の数字に千ごとの桁区切り記号「,」が入っている場合は適用されません。それらについては、あらためて別の機会にご紹介したいと思います。

 

いかがでしたでしょうか? 今回もワイルドカードと同じだったため、わかりやすい内容だったかと思います。なお、「n回以下」を検索したい場合があるかもしれませんが、「{,n}」のように書いても正規表現として機能しません。その場合は、「{0,n}」(0回以上n回以下)「{1,n}」(1回以上n回以下)のように書くようにしましょう。

 

本ブログは、年内は本日で最後です。ご覧になってくださった皆さま、どうもありがとうございました。
来年もこれまでと同様に続けてまいりますので、引き続きよろしくお願いいたします。