正则表达式的输入掩码

input mask to regular expression

本文关键字:掩码 输入 正则表达式      更新时间:2023-10-16

我有一个输入掩码,它是"DDDWD"。

我必须根据这个输入掩码验证一个字符串。然而,要做到这一点,我必须让面具中的每个角色都有值得验证的意义!

即:

D = 0-9
W - a-z

我本来打算把这些信息存储在一个映射中,当我在掩码上检索输入掩码循环时,然后通过在映射中搜索D并将其更改为相应的值,将所有的D更改为0-9,依此类推

有人对将输入掩码更改为含义有更好的想法吗?

即CCD_ 4到CCD_?

您可能需要添加单词边界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