繁体   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