2010-09-16 36 views
0
expr = "name + partner_id.country_id.name + city + ' ' + 123 + '123' + 12*2/58%45" 

print re.findall('\w+[.]',expr) 
['name', 
'partner_id', 
'country_id', 
'name', 
'city', 
'123', 
'123', 
'12', 
'2', 
'58', 
'45'] 

我想包括「。」所以結果應該是像包含「。」的正則表達式幫助。 in word separation

['name', 
'partner_id.country_id.name', 
'city', 
'123', 
'123', 
'12', 
'2', 
'58', 
'45'] 

回答

2

嘗試正則表達式:

[\w.]+ 

說明:

  • [...]是炭類
  • \w是一個字的字符,短爲 [a-zA-Z0-9_]
  • .通常一個是元字符匹配 任何字符,但insid E中的炭類其 作爲文字.
  • +處理一個或多個
1

試試這個:

re.findall('[\w.]+',expr) 

此發現由字母字符塊,數字,下劃線和點。

您的原始正則表達式找到一個單詞後跟一個點,所以我不知道您是如何得到發佈結果的:http://codepad.org/Khsd6IuW

+0

1用於指向原始正則表達式沒有產生示出結果。 – codaddict 2010-09-16 10:39:29