質問: ### 前提・実現したいこと 入力チェックを正規表現で行っています。 入力チェックは、半角英数字記号をOKとしますが、1文字だけ除外したいです。 除外したい1文字は記号の `|` (パイプ) になります。 `|` (パイプ)の位置は、先頭、途中、最後尾どこにあっても除外したいです。 ``` ■OKとしたいパターン例 ABCDEF123+*=-() ■NGとしたいパターン例 ABCDEF123+*=-()| ``` 正規表現が得意ではないので、ご教示いただけますと幸いです。 ### 該当のソースコード 半角英数字記号の正規表現は以下のように記述しています。 ``` /^[!-~\s]+$/ ``` ### 試したこと 以下の記述だと、`|` (パイプ)が文字列に含まれている場合は条件にマッチしますが、 1文字(例えば `A` のみ)だとマッチしませんでした。 ``` /^[!-~\s][^|]+$/ ``` ### 環境 PHP 7.1 Laravel 5.3
回答: 自己解決しました。 `/^[!-{}~]*$/` で実現できました。