📘

覚えると便利な正規表現の世界

2023/08/30に公開

正規表現とは

正規表現とは「いくつかの文字列を一つの形式で表現するための表現方法」です。「+」や「?」など様々な特殊文字(メタ文字)を使用し、複雑な条件式を作ることができます。

\d{1,5}-\d{1,4}-\d{4,5}

メタ文字について

メタ文字とは文字列を一つの形式で表現するために使用される特殊記号です。
この記事ではメタ文字の一部を紹介します。

* 何でもいい一文字

なんでもいい一文字を表現することができます。2つや3つ連続して使用することも可能です

あい*えお

表現可能な文字列

あいうえお
あい4えお
あいPえお

ちなみにアルタリスク(*)を表現したい場合は以下のように記述します

\*

^ $ 行の先頭と最後

「^」が文字列の最初を検索したいときに、「$」は文字列の最後を検索したいときに使用します。

「^」の使用例

サンプル

おはようございます
どうも、ありがとう
ありがとうございます

検索文字

^ありがとう

合致した文字

ありがとうございます

「$」の使用例

サンプル

おはようございます
どうも、ありがとう
ありがとうございます

検索文字

ありがとう$

合致した文字

どうも、ありがとう

* + ? 同じ文字の繰り返し

メタ文字 意味
* 0回以上繰り返し
+ 1回以上繰り返し
? 直前の文字がまったくないか、1つだけある

| いずれかの文字列

「|」で区切られたいずれかの文字列があれば、正規表現に合致したことになります。

りんご|みかん|メロン

合致する文字列

りんご 
みかん 
メロン

[] 指定した文字はどれか

[]に囲まれたのうち、どれか一つの文字と同じものがあれば、正規表現に合致します。

サンプル

APPLE
MELON
BANANA

検索文字

[ABC]

合致する文字

APPLE
BANANA

またこのような書き方をすることで正規表現を楽に書くことができます。

[0-9] //0~9まで
[A-G] //A~Gまで

1~9やA~Zなど特定のパターンのものはショートカットがあります。

ショートカット 指定文字
/d [0-9]
/s [a-z]

活用例

入力した文字列が電話番号の書式と合致していれば送信される

<form action ="" method = "post">
   電話番号:<input type="text"  pattern="^\d{1,5}-\d{1,4}-\d{4,5}" required>
   <input type = "submit" value = "送信">	
</form>

正規表現のテストサイト

作成した正規表現が実際に動作するかチェックできるサイトがあるので活用してください

正規表現チェッカー

PHPのpreg_matchとJavaScriptの matchの実行結果を返してくれるチェックツール
http://okumocchi.jp/php/re.php

Regular Expression Test Drivefor Java Developer

Java向けの正規表現チェックサイト
https://regex-testdrive.com/ja/

Discussion