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