昨日、ユーザーが文字クラスを「任意の順序で」一致させようとしているという質問に答えました。 正規表現には「and」構造自体はありませんが、解決策を思いつきました(要約):
(?=[a-z])(?=\d)[a-z\d]{6,}
これはそのままでは機能しませんが、次のように変更します
(?=.*[a-z])(?=.*\d)[a-z\d]{6,}
動作します。先読みは何も消費しないため、このワイルドカード要件は少し奇妙に思えます。この式を一致させる必要があるのはなぜですか。.*
たとえば、a1a1a1
.