PHP7.2系から7.3系にアップグレードするときに出るエラーでpreg系の関数の正規表現で
Warning: preg_replace_callback(): Compilation failed: invalid range in character class at offset
のようなWarningが出るようになってしまいました。
今回はこれの対応の仕方をシェアしたいと思います。
正規表現の中で – (半角ハイフン)を使ってると出るみたいです。
範囲で使っている所はいいのですが、例をあげると
[A-Za-z]
こういった書き方ですね。大文字のAからZまで、小文字のaからzまでという意味になります。
これはWarningでません。
単体で – を使っている所が範囲を指定してくれとWarningが出るみたいです。
なので \- のように単体のハイフンをエスケープ処理してあげると範囲のハイフンではなく、文字としてのハイフンと認識してくれるのでWarningが回避できます。