質問: ### 前提・実現したいこと 先頭の文字列が「2~」、「3~」、「4~」、「5~」のいずれかで始まる文字列だったら、 if文の中に入るという処理をしたいのですが、エラーが出てしまいました。 先頭の文字は^で指定できるつもりだったのですが、何が間違っていますか? ご教授のほどお願いします。 ### 該当のソースコード ``` if(preg_match('^[2-5]~*', $test)){処理} ``` ### 発生している問題・エラーメッセージ ``` Warning: preg_match(): No ending delimiter '^' found in ~ ``` ### 補足情報(言語/FW/ツール等のバージョンなど) php
回答: > > '^[2-5]~*' > > > preg_matchのパターンにはデリミタ(区切り文字)が必要 一般には「/」を使うことが多いですが特別な意味がある文字以外ならOKです それと「~*」だと「~」がなくても大丈夫になってしまうので '/^[2-5]~/' でよいでしょう