1

私はPythonでこのコードを持っています。実際、Pythonを使用してサーバー側のパスワードフィールドを検証したかったのです。私はパスワードを本質的に英数字にしたいのですが、それは私がこれまでに行ったことです

def valid():
    num = "[a-zA-Z0-9]"
    pwd = "asdf67AA"
    match  = re.match(pwd, num)
    if match:
        return True
    else:
        return False

その常にfalseを返します。IF条件にはなりません。私が行方不明になっているもの

4

5 に答える 5

2

一致の引数を逆にしました

re.match(pattern, string, flags=0)

そのはず

match  = re.match(num, pwd)
于 2012-10-31T07:50:01.217 に答える
1

これを実行して、文字列が英数字かどうかを確認できます

pwd = "asdf67AA"
if pwd.isalnum():
    # password is alpha numeric
else:
    # password is not alpha numeric
于 2012-10-31T07:52:51.003 に答える
0

メソッドreverseitに引数を配置し忘れました。

それが動作します。

ただし、文字列に記号を設定した場合も一致します。だから、私はあなたがこのことを適用することをお勧めします:

pwd = "test5456"

pwd.isalnum():

このメソッドは、文字列に文字列または数字が含まれている場合にのみ機能します。

パスワードに数値と文字列の両方を強く含めたい場合は、このコードが役立ちます。

 test = "anil13@@"
 new = tuple(test)
 data = list(new)
 is_symb =False
 is_digit = False
 is_alpha = False

 for d in data :
    if d.isdigit() :
       is_digit = True
    if d.isalpha():
       is_alpha = True
    if not d.isdigit() and not d.isalpha():
       is_symb =True
       break
if is_symb == False and is_digit == True and is_alpha == True:
   print "pwd matchd::::"
else :
   print "pwd dosen't match..."

注:このコードは、数値と記号に対して強力に機能します

よろしく、アニル

于 2012-10-31T10:34:11.073 に答える
0

これは非常に単純な答えであり、else条件の場合は有線ではなく、検証に正規表現を使用することをお勧めします。

import re
password = raw_input("Enter Your password: ")
if re.match(r'[A-Za-z0-9@#$%^&+=]{6,}', password):
    print "Password is match...."
else:
    print "Password is not match...."
#6 means length of password must be atleast 6
于 2012-11-02T08:34:55.527 に答える
-1

Pythonのisalnum()メソッドを使用するだけでそれを行うことができます

pwd.isalnum()

数字が英数字かどうかがわかり、if条件にヒットします

于 2012-10-31T09:26:58.327 に答える