2014-11-24 79 views
0

我一直在尋找答案,但我真的找不到它,謝謝你的任何可能的答案!蟒蛇找到字符串中的特定變量

我會通過一個HTML文檔完全隨機的文字,和我在一個特定的日期格式尋找的東西:

%%/%%/%%或%% - %% - % %

兩個問題: 1 - 是否可以在指定%s(在這種情況下是兩位數)的同時做類似str.find(%s /%s /%s)的事情?

2-可以在執行.find時將%s分配給變量嗎?因爲像str.find(%s /%s /%s)%(d,m,y)這樣的內容會導致錯誤。

豎起大拇指提示python代碼來實現這個! 謝謝!

回答

1

是的,這是非常可能的。在這種情況下,Regular expressions將成爲你最好的朋友。

對於您給出的例子,您在尋找諸如「xx/xx/xx」之類的東西,以便每個「x」都是數字,下面的正則表達式可以完成這項工作:\d\d[/]\d\d[/]\d\d

下面是它是如何在Python工作:

import re 
pattern = re.compile('\d\d[/]\d\d[/]\d\d') 
pattern.findall(' sadfsd 04/06/76 kjadsf 10/10/14 ') 

嘗試了這一點在你的Python解釋器,你會得到匹配字符串的列表:如果你想提取

['04/06/76', '10/10/14'] 

單獨使用括號將正則表達式的這些部分分組。像這樣:

import re 
pattern = re.compile('(\d\d)[/](\d\d)[/](\d\d)') 
pattern.findall(' sadfsd 04/06/76 kjadsf 10/10/14 ') 

,讓你元組的列表:

[('04', '06', '76'), ('10', '10', '14')] 
+0

感謝您的超快速回復!我想我會深入研究他們。它是否涵蓋第二個問題? – 2014-11-24 23:28:56

+0

我不明白第二個問題。你是否試圖單獨獲取這些值?換句話說,將日期子字符串分配給'd',依此類推? – 2014-11-24 23:32:19

+0

是的,我的壞,它呈現得不好,但你已經回答了我的2dn問題與你更快的答案。非常感謝你! – 2014-11-24 23:38:20