最近在写一个Python程序,有个bug,花了一个多小时解决,最后发现是正则表达式的问题,没想到有MUST
在 M{m,n}
模式中,m
和 n
之间没有空格
,并且我写成M{m, n}
,代码无法执行。
我检查了http://docs.python.org/3/library/re.html关于 {m,n}
部分,它并没有说你不能在 中的
。这是为什么?关于正则表达式,是否还有文档未提及的其他小事,我应该了解?m
和 n
之间放置一个空格>{m,n}
最佳答案
你不会找到任何文档注意到这一点,但这源于正则表达式的性质,因为正则表达式中的每个字符都有特殊的含义,并且根据使用它的上下文,它可能有不同的含义。
这就是为什么有些风格支持通常称为 Free Spacing Mode 的标志的原因, 这允许您编写带空格的正则表达式,通过允许您在正则表达式本身中包含注释来提高可读性和可维护性。
总结:正则表达式中的每个字符和符号都很重要,所以不要假设它没有任何意义,否则它会像那样传递。
关于python - 正则表达式重复中的空格 {m,n},我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19816321/