正規表現で特殊文字だけ取り除きたい【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]って表現できるんですね。
なので^を使ってそれ以外が合ったら空文字に変換していると。
なるほどなぁ( ´_ゝ`)