PHP regular expression to match alpha-numeric strings with some (but not all) punctuationをフォローアップするには、数字、文字または句読点のうちの少なくとも2つの文字を受け入れる必要があります。長さは18文字です。これはこれを行う最良の方法ですか?私はRegExLibのパターンを使ってこの正規表現を作った。PHPの正規表現:文字列に文字列を含める必要があります
preg_match('@' .
// one number and one letter
'^(?=.*\d)(?=.*[a-zA-Z])[!-%\'-?A-~]{6,18}$' .
// one number and one punctuation
'|^(?=.*\d)(?=.*[!-%\'-/:-?\[-`{-~])[!-%\'-?A-~]{6,18}$' .
// or one punctation and one
'|^(?=.*[!-%\'-/:-?\[-`{-~])(?=.*[a-zA-Z])[!-%\'-?A-~]{6,18}$' .
'@i', $pass, $matches);
が含まれている場合、私はすべてを私の正規表現をテストした小資本の数字と特殊文字に チェックが可能3つのタイプとそれはまだ働いた。先読みによっても注文が処理されます。しかし、私はあなたのものがより読みやすく、動作する方法を見ます。 – nymo