python - 正则表达式重复中的空格 {m,n}

标签 python regex

最近在写一个Python程序,有个bug,花了一个多小时解决,最后发现是正则表达式的问题,没想到有MUST M{m,n} 模式中,mn 之间没有空格,并且我写成M{m, n},代码无法执行。

我检查了http://docs.python.org/3/library/re.html关于 {m,n} 部分,它并没有说你不能在 中的 mn 之间放置一个空格>{m,n}。这是为什么?关于正则表达式,是否还有文档未提及的其他小事,我应该了解?

最佳答案

你不会找到任何文档注意到这一点,但这源于正则表达式的性质,因为正则表达式中的每个字符都有特殊的含义,并且根据使用它的上下文,它可能有不同的含义。

这就是为什么有些风格支持通常称为 Free Spacing Mode 的标志的原因, 这允许您编写带空格的正则表达式,通过允许您在正则表达式本身中包含注释来提高可读性和可维护性。

总结:正则表达式中的每个字符和符号都很重要,所以不要假设它没有任何意义,否则它会像那样传递。

关于python - 正则表达式重复中的空格 {m,n},我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19816321/

相关文章:

python - 使用 Sympy 分离实部和虚部

python - 使用 scipy.integrate.quad 时为 "argument must be a callable function"

用于本地语言的 python 词干词

python - 子图的 matplotlib get_color

r - 分离(或类似的功能)具有多个或没有出现分割字符

Java 字符串分割字符串 "},"

regex - Emacs 正则表达式连接行,同时获取换行符

Javascript 正则表达式仅匹配整个单词,仅由空格绑定(bind)

javascript - 需要带有 Bokeh 的嵌入图示例

PHP preg_replace 忽略\h 和\v 标志