簡體   English   中英

正則表達式的輸入掩碼

[英]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.

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