/bonvhp/webapp/PHP       [後へ]   [目次へ]   [次へ] ~ [] ~

PHP:正規表現

Perl 互換の正規表現について説明します。
Perl をご存知の方は、そのまま使えます。

正規表現を使用すれば、
「英小文字が5文字と数字が3文字続く」文字列を探す、
とか簡単にできます。

正規表現のパターンは、マニュアルで。

・preg_grep(パターン, 配列 [, フラグ])
  配列の中から、パターンにマッチする要素だけ配列にして返します。
  フラグに PREG_GREP_INVERT を指定すると、マッチしないものだけを返します。
$a = array('abc', 'ABc', 'abcDe'); $b = preg_grep("/[a-z]3+/", $a); // 英小文字3文字を含む var_export($b); echo '<br>'; $b = preg_grep("/^.3$/", $a); // 任意の3文字 var_export($b); echo '<br>';
・preg_match(パターン, 文字列 [, $matches [, フラグ [, オフセット]]]) 文字列がパターンに合致した回数を返します。 つまり、0 か 1 を返します。 $matches を指定すれば、一致した情報が格納されます。 $matches[0] パターン全体で一致した文字列が、 $matches[1] 以降は、サブパターンにマッチした文字列が格納されます。 フラグに PREG_OFFSET_CAPTURE を指定すると、 $matches の各要素が、更に配列になり、 $matches[][0] には、マッチした文字列が、 $matches[][1] には、文字列全体に対するオフセット値が格納されます。 オフセットを指定すると、オフセット文字目から検索を開始します。
preg_match("/([a-z]3)([0-9]2)/", 'abc123', $matches); // array('abc12', 'abc', '12') var_export($matches);
/bonvhp/webapp/PHP       [後へ]   [目次へ]   [次へ]