2016-08-26 21 views
1

私は小さな問題がありますが、私は自分のパスワード正規表現をPHPにしようとします。最初のマッチ後に文字列全体が一致する

これは私の表現である:それは、例えば、停止して一致した後

/([a-zA-Z]+[0-9]+[!?]+)/ 

a1?は最初のマッチで、a2!が2試合目ですが、私はそれが全体の文字列一致させたい:その後

a1?a2! 

を、私はこの表現を試してみました:

/([a-zA-Z]+[0-9]+[!?]+){6,12}/ 

はしかし、それはしていません何かにマッチする。

+3

はあなたが 'したいわけですか/(?: [a-zA-Z] + [0-9] + [α] +)+/'? https://regex101.com/r/zN1tZ1/1を参照してください。または、文字列全体*に一致するつもりですか?次に、[''/^(?:[a-zA-Z]+[0-9]+[!?]+)+$/D''](https://regex101.com/r/fV2rE2/)を使用してください。 2) –

答えて

2

/([a-zA-Z]+[0-9]+[!?]+){6,12}/正規表現は、1 +文字、1 +数字、1 + !または?記号の6から12のシーケンスに一致します。

実は、あなたは単なる+数量詞使用し、このような配列の1以上を一致させたい:あなたは検証パターンを必要とするので、私はあなたを考えるregex demo

を参照してください

'/^(?:[a-zA-Z]+[0-9]+[!?]+)+$/D' 

文字列全体を文字列と一致させる必要があるため、アンカー^$が必要で、/D修飾子を使用して末尾に\n

1

この正規表現は、あなたのパスワード "a1?a2!"になります。 - ?。?。?。[!]?。

((= [-ZA-Z])(= D \)(= )(= [-ZA-Z ])(= D \ )(= []){6,20})

しかし、あなたは次のようにパスワードの入力を標準使用する必要があります - ?。?。?!。(

^?=。[az])(?=。 [AZ])(?=。\ d)(?=。 [$ @ $! %? &])[A-Za-z \ d $ @ $!%? &] {8、}

この正規表現は、あるために:最小8つの文字、少なくとも1大文字アルファベット、1小文字のアルファベット、1つのナンバーと1つの特殊文字

関連する問題