2011-11-08 31 views
1

的數據是這樣的:爲什麼我的正則表達式找不到結果?

post date='2008-7' postCount='8' viewCount='24308' questionCount='5' answerCount='76' answeredQuestion='5' 

,這裏是我的任務代碼:

p1 = re.compile(r"post date") 
m1 = p1.search(postline) 
if m1: 
    month = re.search(r'post date="([\d\W]+)"', postline).group(1) 

回答

4

您正在尋找雙qoutes "而你的例子是單qoutes '

re.search(r'post date="([\d\W]+)"' 
        ^  ^

post date='2008-7' postCount='8' viewCount='24308' questionCount='5' answerCount='76' answeredQuestion='5' 
     ^ ^

編輯:的問題不再是正則表達式,但你的Python之內。這裏有一個例子:

import re 
postline = "post date='2008-7' postCount='8' viewCount='24308' questionCount='5' answerCount='76' answeredQuestion='5'" 
pattern = "post date='([\d\W]+)'" 

p1 = re.compile(pattern) 
date = p1.search(postline).group(1) 
print date 

輸出:

2008-7 
+0

我已經改變這樣的代碼:一個月= re.search(R 「後日期= '([\ d \ W] +)'」,postline)。集團(1),但它仍然不工作:( – AnneS

+0

@安妮看到我的更新。 – Marcus

0

將你約會永遠是格式YYYY-M?如果是這樣,相應地構建你的模式?這種模式允許YYYY-MYYYY-MM

>>> import re 
>>> postline = "post date='2008-7' postCount='8' viewCount='24308' questionCount='5' answerCount='76' answeredQuestion='5'" 
>>> pat = r"post date='(\d{4}-\d{1,2})'" 
>>> re.search(pat, postline).group(1) 
'2008-7' 
相關問題