くわこのpermission denied.

WEBエンジニアの僕がぶつかった技術的な問題や発見

正規表現で特殊文字だけ取り除きたい【PHP】

諸事情で特殊記号(☆)とかが文字列に入っていたら、排除してちゃんとした文字列に直したい、ということがあって調べたので共有。

$address = '東京都☆渋谷区';
$formated_address = preg_replace("/[^ぁ-んァ-ンーa-zA-Z0-9一-龠0-9\-\r]+/u",'' ,$address);
echo $formated_address;
// 東京都渋谷区

って感じらしいです。
特殊記号以外の文字(普段使ってる漢字とか英数字)って正規表現だと[ぁ-んァ-ンーa-zA-Z0-9一-龠0-9\-\r]って表現できるんですね。
なので^を使ってそれ以外が合ったら空文字に変換していると。

なるほどなぁ( ´_ゝ`)