正規表現とは、「文字列のパターン」を表現するためのルールです。
特定の形式に一致するかどうかを判定したり、文字列を検索・置換する際に使われます。
例えば、以下のような場面で利用されます。
つまり、**「文字列のルールを定義してチェックする仕組み」**です。
まずは最低限これだけ覚えればOKです。
| パターン | 意味 | 例 | マッチ例 |
|---|---|---|---|
. |
任意の1文字 | a.c |
abc, a9c |
\d |
数字 | \d\d |
12, 99 |
\w |
英数字・アンダースコア | \w+ |
abc_123 |
^ |
行頭 | ^abc |
abc123 |
$ |
行末 | abc$ |
123abc |
| パターン | 意味 | 例 |
|---|---|---|
* |
0回以上 | a* |
+ |
1回以上 | a+ |
? |
0回 or 1回 | a? |
{n} |
n回 | \d{3} |
{n,m} |
n〜m回 | \d{2,4} |
^\d+$
→ 数字だけで構成されているかチェック
^\d{3}-\d{4}$
→ 例:123-4567
^\d{2,4}-\d{2,4}-\d{4}$
→ 落とし穴
^\S+@\S+\.\S+$
→ 落とし穴
^[ぁ-ん]+$
^[ァ-ヶー]+$
^[ヲ-゚ァ-ヶー]+$
→ 落とし穴(日本語系)
uフラグ)が必要な場合あり^[A-Za-z0-9]+$
→ 落とし穴
\wを使うと _(アンダースコア)も含まれるconst regex = /^\d+$/;
console.log(regex.test("123")); // true
console.log(regex.test("abc")); // false
$value = "123";
if (preg_match('/^\d+$/', $value)) {
echo "OK";
} else {
echo "NG";
}