Warning: preg_replace() (もしくはpreg_match()): Unknown modifier というエラーが出た場合の理由とその対処方法を解説いたします。
Warning: preg_replace() preg_match(): Unknown modifier の意味
このエラーは、多くの場合正規表現の書式(書き方)が論理的におかしいに発生します。
正規表現とは、文字列をあいまい検索するときに使われる特殊な指定方法で、例えば、英文字の大文字小文字のみ全てに合致させたい場合は下記のように正規表現では記載されます。
/[a-z]/i
//は正規表現の範囲を表現し、最後のiは大文字小文字全てに合致するという意味で、[a-z]はaからzすべてのアルファベットを意味します。
こちらが例えば下記のようになっているとaからzまでのすべてのアルファベットというくくりの後に無用な正規表現上意味を持つ)が入っていることから構文エラーであるWarning:Unknown modifier が発生します。
/[a-z])/i
Warning: preg_replace() preg_match(): Unknown modifier の修正方法
正規表現の構文を修正するには、 regex101.com のような正規表現をリアルタイムで検証してくれるサイトが便利です。
上図のようにREGULAR EXPRESSION の中に正規表現を入れるとエラーのある部分を示してくれます。
また、エラーを修正して正しい構文の正規表現を入れると、マッチした個所や数を表示してくれます。