概要
正規表現とは、以下のような事ができます。
- 文字列を検索できる
- 行の先頭、末尾などが指定できる
- 繰り返し文字なども指定できる
通常、文字列などの検索は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 ); //カタカナでない場合,削除