エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
invalid range in character class警告が出たら正規表現の文字クラスにあるハイフンを確認する
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
invalid range in character class警告が出たら正規表現の文字クラスにあるハイフンを確認する
2020/07/26PHP この投稿は最終更新日から1年以上経過しています 古いスクリプトを動かしたらこんな警告... 2020/07/26PHP この投稿は最終更新日から1年以上経過しています 古いスクリプトを動かしたらこんな警告が出た。 Warning: preg_match(): Compilation failed: invalid range in character class at offset 33 in ~ 該当コードは if (!preg_match('|\Ahttps?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?\z|', $url)) { この箇所で、文字クラス[\w- ./?%&=]にあるハイフンがリテラルではなく範囲と見なされてしまっているようだ。調べてみると、PHP7.3で正規表現ライブラリがPCRE2へ移行したことによる影響だという。 今後、文字クラスでハイフンリテラルを表現したい場合には //エスケープする [\w\-.] //先頭に置く [-