0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

正規表現では文字コードに注意!!フラグを指定しよう

Posted at

正規表現

正規表現で特定の文字を置き換える際に沼った。

状況

「〇〇1階」を「〇〇1階」に変換したい。(半角を全角に)

※ 説明用のため、やりたいことに矛盾があるかもしれません。。

環境

Laravel8

起こったエラー

ときどき文字化けする。

原因

正規表現で文字コードを指定していなかった。

preg_replace_callback('/[1階]/', 
    function ($matches) {
        // 半角を全角に変換
        return mb_convert_kana($matches[0], 'N', 'UTF-8'),
    },
    $address);

数字の部分は簡略化して「1」と表現。

解決方法

文字コードを指定する。

今回はUTF-8とする。

'/[1階]/u'
preg_replace_callback('/[1階]/u', 
    function ($matches) {
        // 半角を全角に変換
        return mb_convert_kana($matches[0], 'N', 'UTF-8'),
    },
    $address);

まとめ

解決してみれば、すごく簡単なことだったが無駄に時間を浪費してしまった。

参考

正規表現(RegExp)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?