我有一个输入掩码是'DDDWD'。
我必须针对此输入掩码验证字符串。但是要做到这一点,我必须使该掩码中的每个角色都有意义进行验证!
即:
D = 0-9
W - a-z
我打算将这些信息存储在地图中,当我在掩码上检索输入掩码循环,然后通过在地图中搜索{{1}将所有D
更改为0-9
并将其更改为相应的值,依此类推。接下来,我可以使用正则表达式
有没有人更好地将输入掩码更改为含义?
即D
到DDDWD
并使用正则表达式中的那些?
答案 0 :(得分:0)
您可能需要添加单词边界\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