- ベストアンサー
正規表現での英字+ハイフンのセット部分一致判定方法
PHP5の正規表現で「999-999」形式か「999-A-999」形式のみ 入力可能としたいです。 ※「9」…数値、「-」…ハイフン if (!preg_match("/^[0-9]{3}-[A-Z]{0,1}[-]{0,1}[0-9]{3}$/", $abc)) { … とすると 「A-」の部分がセットになっていないため 「999-A999」も入力可となってしまいます。 OR判定でIF文を追加する方法ももちろんありますが、 [A-Z]{0,1}[-]{0,1}の部分をあくまでもセット判定する方法があれば教えてください。 何卒よろしくお願い申し上げます。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
該当箇所を括弧でくくってから、量指定子をつけてみて下さい。 https://ideone.com/2WChn
その他の回答 (1)
- Tacosan
- ベストアンサー率23% (3656/15482)
回答No.1
グルーピングすればいいんじゃね?
お礼
"/^[0-9]{3}-([A-Z][-]){0,1}[0-9]{3}$/"で出来ました! ありがとうございました!