[英]input mask to regular expression
我有一個輸入掩碼,它是“DDDWD”。
我必須根據此輸入掩碼驗證字符串。 但是,要做到這一點,我必須使該面具中的每個角色都具有要驗證的意義!
IE:
D = 0-9
W - a-z
我打算將這些信息存儲在地圖中,當我在掩碼上檢索輸入掩碼循環時,然后通過在地圖上搜索D
並將其更改為相應的值等將所有D
更改為0-9
。 之后,我可以將這些值與正則表達式一起使用
有沒有人有更好的主意將輸入掩碼更改為含義?
即DDDWD
到[0-9][0-9][0-9][az][0-9]
並在正則表達式中使用那些?
您可能需要添加單詞邊界\\b
或字符串開始/結束標簽^$
。
不確定是否需要不區分大小寫的標志flags=re.I
mappings = { "D": "0-9", "W": "a-z" }
def test_input_mask(mask: str, input: str) -> bool:
#regex = r'\b' + "".join([ '['+mappings[char]+']' for char in mask ]) + r'\b'
regex = '^' + "".join([ '['+mappings[char]+']' for char in mask ]) + '$'
match = re.match(regex, input, flags=re.I)
return bool(match)
test_input_mask("DDDWD", "123a4") # True
test_input_mask("DDDWD", "123a4567") # False
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.