開発情報・ナレッジ

投稿者:SPIRERS ナレッジ向上チーム 2022年11月24日 (木)

よく使う正規表現のまとめ

正規表現とは、文字列の集合を一つの文字列で表現する方法となり、設定されたパターンにマッチするかを判定するものになります。
SPIRAL ver.2では、DBのフィールドの設定で正規表現による登録内容の制限ができるようになっています。
今回は、正規表現の記載方法について説明いたします。参考にしてみてください。
正規表現の設定ができるフィールドは テキスト・テキストエリアメールアドレスフィールドのみ使用できます。
また、SPIRAL ver.2 では、Javaで使用している正規表現になります。
サポートサイトにも記載があるので、合わせてご確認ください。

正規表現の基本

正規表現は、文字列を検索するために使われます。
検索する構文を知ることで、複雑な検索もできるようになります。
よく使われる正規表現の書き方を表にしたので、参考にしてください。
文字
構文 説明 記載例
\d 0-9までの数字。全角を含む \d:0-9のいずれかの数字が含まれる
id=\d:id=の後ろに数字存在する
\D 数字以外の文字・記号 \D:数字以外の文字・記号が含まれる
id=\D:id=の後ろに数字以外の文字が存在する
\s 半角スペース、改行、タブ文字など \s:半角スペース、改行、タブ文字などの空白が含まれる
\S 半角スペース、改行、タブ文字以外の文字 \S:半角スペース、改行、タブ文字などの空白以外の文字が含まれる
\w 半角アルファベット(大文字・小文字)、数字、半角アンダースコア(_) \w:半角アルファベット(大文字・小文字)、数字、半角アンダースコア(_)が含まれる
\W 半角アルファベット(大文字・小文字)、数字、半角アンダースコア(_)以外の文字 \W:半角アルファベット(大文字・小文字)、数字、半角アンダースコア(_)以外の文字が含まれる
[-] 文字範囲に含まれる文字 [0-9]:0〜9
[a-z]:a〜zに該当する小文字アルファベット文字
[a-zA-Z]:a〜zまたは、A〜Zに該当する小文字・大文字アルファベット文字
(|) 指定されたパターン文字 [hoge|fuga]:hoge または、fuga
パターン
構文 説明 記載例
* 直前の文字が0回以上表示 [0-9]*:半角数字 が0回以上表示(その他構文と組み合わせて使用)
+ 直前の文字が1回以上表示 [0-9]+:半角数字 が1回以上表示
? 直前の文字が0回または、1回表示 [a-z]?:半角小文字英語 が0回または、1回以上表示(その他構文と組み合わせて使用)
[] []内に記載されているいずれかの1文字 [123]:1、2、3のいずれかの文字が含まれる
[^] [^]内に記載されているいずれかの文字以外の1文字 [^123]:1、2、3 以外の文字が含まれる
^ 直後の文字が行の先頭にある場合 ^id\_:id_ から始まる文字列
$ 直前の文字が行の末尾にある場合 _test$:末尾が_testで終わる文字列
{N} 直前の文字がN回繰り返し [0-9]{3}:半角数字が3文字続いている文字が含まれる文字列
{N,M} 直前の文字がN回以上M回以下繰り返し [0-9]{3,6}:半角数字が3文字以上6文字以内で続いている文字が含まれる文字列
正規表現は、基本の書き方を組み合わせて文字列チェックを行います。
今回はごく一部を記載しているので、詳しく知りたい方は Web で検索してみてください。

実例

よく使われる正規表現の書き方をご紹介いたします。
全角ひらがなのみ
^[ぁ-んー]*$
全角カタカナのみ
^[ァ-ンヴー]*$
8桁の半角英数のみ
^[a-zA-Z0-9]{8}$
※ {8} の数値を変更することで桁数を変更することができます。
12桁の半角英数記号のみ
^[\x20-\x7F]{12}$
※ {12} の数値を変更することで桁数を変更することができます。
日本語(漢字、ひらがな、全角カタカナ)
^[ぁ-んァ-ヶー\u30a0-\u30ff\u3040-\u309f\u3005-\u3006\u30e0-\u9fcf]*$
日本語(漢字、ひらがな、全角カタカナ)と半角スペース、全角スペースのみ
^[ぁ-んァ-ヶー\u30a0-\u30ff\u3040-\u309f\u3005-\u3006\u30e0-\u9fcf\s ]*$
半角英数字と半角ハイフン、半角スペースのみ
^[0-9a-zA-Z\-\s]*$
半角スペース、改行、タブ文字などの空白文字と全角スペースが含まれない文字列
[^\s| ]+
IPアドレス(IPv4)形式
^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])$
URL形式
^http(s?)://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*$
※ テキストフィールドは、128byteのため、テキストエリアを選択してください。

最後に

不具合やほかのやり方が知りたい等あれば、下記の「コンテンツに関しての要望はこちら」からご連絡ください。
コンテンツに関しての
要望はこちら