PHPの正規表現で、ANDを実装する方法を教えてください。
[a-z and 0-9]みたいな感じです
まず自身が思ったように組んでみるところからです。丸投げです。
調べたこと試したことを記載してください。
りょーかい
例えば i という文字は a-z の範囲内に含まれますが、0-9 の範囲内には含まれません。AND すると成り立たなくなるので普通はORで結合するよねって解釈しますが、それでもANDなんですか? って考えると maisumakunさんの回答一択になってしまいます。もう少し具体例を示して、こういうふうにしたいって説明を加えると、そもそもの説明の誤りに気づきやすくなるかと思うのですが。
会員登録サイトでパスワードの入力値を半角英語と半角数字の両方を必ず含めるようにしたいのでandが必須です
だとしたら「半角英字、半角数字 いずれも1文字以上」という要件になると思います。
うん、それならわかる。伝え方でできることもできないなんて話に転んでしまう。
「aあ1」なんて文字列も、「半角英字、半角数字 いずれも1文字以上」に該当するけど、パスワードとしてはダメな気がするので、もうちょっと要件を明確にしたい。
「半角英数のみで構成されている」
且つ
「英数字いずれも1文字以上含んでいる」
とチェックを分けたほうが簡単そうですけどね。なんなら英数も分けていいくらい。
「英字が一文字以上ある」且つ「数字が一文字以上ある」
で、ひとつでもfalseならエラー。
正規表現こねくり回しすぎるのも保守性失うだけですし。メンテナンスもしづらくなる。