正規表現

正規表現の文字数は{n,m}で指定 | 以上や以下も表せる

正規表現で文字数を指定する方法

正規表現での文字数指定は{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