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