【正規表現】超入門 -10分-

その他

概要

正規表現とは、以下のような事ができます。

  • 文字列を検索できる
  • 行の先頭、末尾などが指定できる
  • 繰り返し文字なども指定できる

通常、文字列などの検索はfind,search関数などを使用して、目的にあった検索アルゴリズムを実装します。正規表現を知っていれば、ほんの1行書くだけで、いろいろな事ができるようになります。

でもちょっと指定が難解です。。

正規表現で使用する特殊文字

特殊文字には、以下のものがあります。

.   ^   $   [   ]   *   +   ?   |   (   )

preg_match

以下の形式です。[]書きのところは、省略できます。

返り値 = preg_match(/正規表現パターン/,検索対象の文字列,[配列],[動作フラグ],[検索開始位置])

ABC以外の文字列にマッチ

  • 検索対象の文字列を”ABCDEF”を指定すると”マッチ”
  • 検索対象の文字列を”ABC”を指定すると”アンマッチ”
if(preg_match("/[^ABC]/", "ABCDEF"))
{
   echo "マッチ\n";
}else{
   echo "アンマッチ\n";
}

preg_replace

以下の形式です。

リプレイスされた文字列 = preg_replace  ( $正規表現パターン, $置換後の文字列, $置換対象 )

カタカナ以外のものを削除

SJISのphpソース上で、UTF-8の文字列に対して処理を行う場合

$pattern = "/[^ァ-ヶヲ-]/u"; //カタカナでない場合
$pattern = mb_convert_encoding($pattern,"UTF-8", "SJIS");
$Kana    = preg_replace($pattern,"", $Kana ); //カタカナでない場合,削除

mb_convert_encodingは、文字コードを変換する関数です。(上記例では、SJISをUTF-8に変換する)

UTF-8のphpソース上で、UTF-8の文字列に対して処理を行う場合

$pattern = "/[^ァ-ヶヲ-]/u"; //カタカナでない場合
$Kana    = preg_replace($pattern,"", $Kana ); //カタカナでない場合,削除