簡體   English   中英

用正則表達式匹配字符串

[英]Matching string with regular expression

我正在嘗試創建一個 function 來訪問,如果用戶輸入的用戶名與正則表達式匹配。 這是我的代碼:

def regular_expression():
    rules = "[A-Z]^{1}[a-zA-Z0-9]+[0-9]$"

    while True:
        username = str(input("Username Must have:\n"
                             "- First character must be an upper case letter\n"
                             " - Middle can be any letter or number\n"
                             "- Last character must be a number\n"
                             "> "
                             ))

        if re.fullmatch(rules, username):
            print("Accepted")

這是我收到的錯誤:

    return _compile(pattern, flags).fullmatch(string)
    p = sre_compile.compile(pattern, flags)
    p = sre_parse.parse(p, flags)
    p = _parse_sub(source, pattern, flags & SRE_FLAG_VERBOSE, 0)
    source.tell() - here + len(this))
re.error: multiple repeat at position 9

問題是“^{1}”在你的“規則”變量中,它的目的是什么?

我設法用這個來完成這項工作:

def regular_expression():
    rules = "^[A-Z][a-zA-Z0-9]+[0-9]$"

while True:
    username = str(input("Username Must have:\n"
                         "- First character must be an upper case letter\n"
                         " - Middle can be any letter or number\n"
                         "- Last character must be a number\n"
                         "> "
                         ))

    if re.fullmatch(rules, username):
        print("Accepted")
        break

*不要忘記添加'break',退出循環;)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM