我無法理解Python中的正則表達式模塊。我想我想做的事很簡單,但我無法弄清楚。Python在字符串中查找模式
我需要通過一些XML文件進行搜索,找到這個模式:
「顯示名稱=‘包裹(2012年10月1日)’」
我可以通過XML解析,並更換沒問題,我無法弄清楚的部分是如何做一個通配符搜索來查找「Parcels(some-date-year)」的任何實例。由於日期會有所不同,我需要找到這種模式:
pat = '"Parcels (*-*-*)"'
,我想我可以用時間模塊做今天的日期來代替它。我抄了80行左右的XML文檔中的一行,我需要找到該模式。
根據re.search()函數的幫助,似乎我可以放入一個模式,然後我希望搜索的字符串。但是,我收到錯誤。
在模塊重新幫助上功能的搜索:
搜索(圖案,字符串標誌= 0) 掃描通過串尋找匹配的模式,返回 匹配對象,或無如果沒有匹配是找到。
這裏是我的小測試片段:
import re
pat = '"Parcels (*-*-*)"'
t= ' <Layer DisplayName="Parcels (7-1-2010)" FeatureDescription="Owner Name: {OWNER_NAME}<br/>Property Address: {PROP_ADDR}<br/>Tax Name: {TAX_NAME}<br/>Tax Address 1: {TAX_ADD_L1}<br/>Tax Address 2: {TAX_ADD_L2}<br/>Land Use: {USE1_DESC}<br/><a href="http://www16.co.hennepin.mn.us/pins/pidresult.jsp?pid={PID_NO}">View Property Information</a><br/><br/><br/>" FeatureLabel="Parcel ID: {PID_NO}" IconUri="{RestVirtualDirectoryUrl}/Images/Parcel.png" Identifiable="true" IncludeInLayerList="true" IncludeInLegend="true" Name="Parcels" Searchable="true" ShowMapTips="true" UnconfiguredFieldsSearchable="true" UnconfiguredFieldsVisible="true" Visible="true">'
match = re.search(pat, t)
print match
大部分線路是垃圾我不需要擔心。我只需要看看如何在該行中找到該日期,以便我可以在replace()函數中使用該片段。有誰知道我怎麼能找到這些日期? xml中可能有其他日期,但我不需要替換它們;就是它說的「Parcels(some-date-year)」。我感謝任何幫助!謝謝!
該模式需要是正則表達式。 http://docs.python.org/2/howto/regex.html可以幫助你嗎? – geoffspear
這不是一個正則表達式 – njzk2
大量的XML模塊,不要重蹈覆轍。 –