此正则表达式的正确术语是什么?

时间:2019-07-02 06:56:08

标签: regex python-regex

我正在用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,但是“ \”的转义有误,我不知道如何解决。

1 个答案:

答案 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变量的值
  • }}-一个}字符串。