我是 regex 的新手,正在尋找一個 regex 模式來檢查匹配的字串是否滿足以下 4 個條件:
- 以單詞“user”開頭
- 以一組 4 位亂數結尾。
- 除了@ 和 % 之外,字串應該沒有特殊字符
- 它應該在匹配的字串中至少有一個@ 符號和一個 % 符號。
- 總字串長度應至少為 20 個字符。
匹配模式示例:
userjoe@manhattan34 user%ryan%@nashville3354
我嘗試使用下面的代碼,但它不起作用:
inputstr = "userjoe@manhattan34"
if re.match(r'^user.*% .*@ .*\d{4}$',inputstr):
print("True")
else:
print("False")
當特殊符號改變字串中的位置時(即 @ 先出現,然后是 %),輸出為 false 而不是預期的 True 輸出。上面的代碼中也缺少字串長度檢查驗證
uj5u.com熱心網友回復:
我將使用以下正則運算式模式:
^user(?=.*@)(?=.*%)[A-Za-z0-9@%]{12,}[0-9]{4}$
Python 腳本,使用re.search:
inputstr = 'userjoe@manhattan34'
regex = r'^user(?=.*@)(?=.*%)[A-Za-z0-9@%]{12,}[0-9]{4}$'
if re.match(regex, inputstr):
print("True")
else:
print("False")
上面的正則運算式模式說要匹配:
^
user starts with 'user'
(?=.*@) assert that at least one @ appears
(?=.*%) assert that at least one % appears
[A-Za-z0-9@%]{12,} 12 or more alphanumeric, @, %, characters
[0-9]{4} ending in any 4 numbers
$
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/358670.html
