首页 > 解决方案 > 这个正则表达式的正确术语是什么?

问题描述

我正在为 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,但是“”的转义有一个错误,我不知道如何修复它。

标签: pythonregex

解决方案


在插值字符串文字中,文字{定义为{{,文字}使用}}.

你应该使用

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

推荐阅读