我正在用Python编写文本字段的验证。 现在,我想实现以下正则表达式进行验证。
但是,我在转义表达式时遇到了问题。 有人可以帮我吗? :)
def regex_1_4_9_digits(data, min=1, max=9):
pattern = f'[A-Z0-9]{{{min},{max}}}'
pattern1 = f'^\\s*-?[A-Z0-9]{{{min,max}}}\\s*$'
output = re.match(pattern, data)
return output
我想使用pattern1,但是“ \”的转义有误,我不知道如何解决。
答案 0 :(得分:2)
在插值字符串文字中,文字{
定义为{{
,而文字}
使用}}
设置。
您应该使用
pattern1 = f'^\\s*-?[A-Z0-9]{{{n},{m}}}\\s*$'
^^^ ^^^
或者,
pattern1 = rf'^\s*-?[A-Z0-9]{{{n},{m}}}\s*$'
我建议将n
用作最小阈值,将m
用作最大阈值。
{{{n},{m}}}
应该读为
{{
-{
字符串{n}
-n
变量的值,
-逗号(字符串){m}
-m
变量的值}}
-一个}
字符串。