8
这是用Python编写的,Python正则表达式re.match,为什么这段代码不起作用?
import re
s='1 89059809102/30589533 IronMan 30 Santa Ana Massage table/IronMan 30 Santa Ana Massage table'
pattern='\s(\d{11})/(\d{8})'
re.match(pattern,s)
它返回无。
我试着服用支架脱落,
pattern='\s\d{11}/\d{8}'
它仍然返回none
。
我的问题是:
- 为什么re.match没有发现什么?
- 模式中使用或不使用括号有什么区别?
@nhahtdh:' \ s'和'\ d'在普通的python字符串中没有任何意义,所以在这种特殊情况下没有区别,反斜杠也不需要转义。 – 2013-02-18 10:11:44
@MartijnPieters:你说得对,但是原始字符串对于清除混淆仍然非常有用。不同的语言对'''''有不同的处理方式,后面跟着一个不构成转义序列的字符。 – nhahtdh 2013-02-18 10:14:01
@nhahtdh:我完全同意;使用正则表达式的'r''原始字符串当然是一个好主意,并且是最佳实践。就在这种情况下,OP是幸运的,没有任何区别。 :-) – 2013-02-18 10:16:01