正規表現¶
はじめに¶
本サイトにつきまして、【IT技術の知見】はじめに - 俺の技術ノート をご認識のほど宜しくお願いいたします。
01. 正規表現とパターン演算子¶
正規表現¶
▼ 正規表現とは¶
数値、記号、文字列などの種類を簡単に表す文字列のこと。
preg_match() 関数¶
▼ 数字¶
『0 から 9 のいずれか』の数字を意味する。
<?php
$var = "0123456789";
// OR条件と範囲指定
$result = preg_match("/[0-9]/", $var);
var_dump($result); // true
▼ アルファベット¶
『a から z のいずれか』または『A から Z のいずれか』のアルファベットを意味する。
<?php
$var = "aAbBcC";
// OR条件と範囲指定
$result = preg_match("/[a-zA-Z]/", $var);
var_dump($result); // true
▼ メタ文字¶
エスケープのために、必ずバックスラッシュを付ける必要がある。
『?』『.』『*』『$』のいずれかのメタ文字を意味する。
<?php
$var = "?";
$result = preg_match("/[\?.*$]/", $var);
var_dump($result); // 1
▼ ワイルドカード¶
ワイルドカードは『.*』または『.+』で意味する。
ドットは任意の文字、アスタリスクは直前の文字が 0 回以上反復すること、プラスは 1 回以上反復することを意味する。
<?php
$var = "FooBarBaz";
// 前方の一致
$result = preg_match("/Foo.*/", $var);
var_dump($result); // 1
<?php
$var = "FooBarBaz";
// 後方の一致
$result = preg_match("/.*Baz/", $var);
var_dump($result); // 1
▼ クエスチョン¶
クエスチョンの前に記載された文字列は、有無にかかわらず問題ないことを意味する。
<?php
$var = "FooBarBaz";
# zはあってもなくてもも
$result = preg_match("/FooBarBaz?/", $var);
var_dump($result); // 1
▼ オプションとしてのパターン演算子¶
<?php
$var = "jpeg";
// jpegの大文字小文字
$result = preg_match("/jpeg$/i", $var);
var_dump($result); // 1
<?php
$var = "JPEG";
// jpegの大文字小文字
$result = preg_match("/jpeg$/i", $var);
var_dump($result); // 1
▼ グループ化¶
文字列をグループ化する。
正規表現に規則性がある場合に有効である。
<?php
$var = "abcabcabc";
# abcが任意数だけ反復する
$result = preg_match("/(abc)*/", $var);
var_dump($result); // 1