正規表現での文字数指定は{n,m}
正規表現で文字数を指定する際には、その文字のあとに「{n,m}」を追加することで表せます。たとえば「あ{1,3}」は「あを1〜3回」の意味を表し、「.*{2,4}」とかくと「任意の文字を2〜4文字」という意味になります。
// ギが1〜3回繰り返されるのを想定
ギ{1,3}アル
// 検索の対象
アル // NG
ギアル // OK
ギギアル // OK
ギギギアル // OK
ギギギギアル // NG
数字の桁数も同様に表せます。数字の桁数についての解説はこちらの記事でもしています。
// 2桁〜4桁の数値を表現
\d{2,4}
// 検索の対象
1 // NG
12 // OK
123 // OK
1234 // OK
12345 // NG
// 「サシスセソタチツテト」を使った2〜4文字
^[サ-ト]{2,4}$
// 検索の対象
サトシ // OK
テツ // OK
タケシ // NG
n文字は{n}
3文字や5文字のように特定の文字数のみを指定したい場合は「{n}」とかくことで、その文字数のみを表せます。「{n,m}」と同様に文字や特殊な記法にも対応しています。
// カタカナ4文字の博士を探したい
^[ア-ンー]{4}博士$
// 検索の対象
オーキド博士 // OK
ウツギ博士 // NG
オダマキ博士 // OK
ナナカマド博士 // NG
n文字以上は{n,}
2文字以上のように◯文字以上を指定したい場合は「{n,}」とかくことで、特定の文字数より多いパターンを表せます。文字数が多い場合にはどこまででも許可するので、あまりに多くの数が続きそうな場合には注意しましょう。
// カタカナ4文字以上のポケモンを探したい
[ア-ンー]{4,}
// 検索の対象
ピィ // NG
ピッピ // NG
ピクシー // OK
ゴチム // NG
ゴチミル // OK
ゴチルゼル // OK
m文字以下は{,m}
5文字下のように特定の文字数より少ない条件を指定したい場合は「{,m}」とかくことで、m文字以下の数を表せます。環境によっては「{0,m}」のように0を追記する必要があるかもしれません。
// 5文字以下の街を探す
^.{,5}$
// 検索の対象
マサラタウン // NG
ニビシティ // OK
ハナダシティ // NG
タマムシシティ // NG