我正在Python中使用正則表達式,我正在努力解決這個問題。 我有數據線的像這樣的文件:從一行中提取文本:Python中的正則表達式
|person=[[Old McDonald]]
,我只是希望能夠從該行提取Old McDonald
。
我一直在試圖用正則表達式:
matchLine = re.match(r"\|[a-z]+=(\[\[)?[A-Z][a-z]*(\]\])", line)
print matchLine
,但它不工作;每次都是None
。
我正在Python中使用正則表達式,我正在努力解決這個問題。 我有數據線的像這樣的文件:從一行中提取文本:Python中的正則表達式
|person=[[Old McDonald]]
,我只是希望能夠從該行提取Old McDonald
。
我一直在試圖用正則表達式:
matchLine = re.match(r"\|[a-z]+=(\[\[)?[A-Z][a-z]*(\]\])", line)
print matchLine
,但它不工作;每次都是None
。
構造[A-Z][a-z]*
不符合Old McDonald
。你可能應該使用類似[A-Z][A-Za-z ]*
的東西。這裏是代碼示例:
import re
line = '|person=[[Old McDonald]]'
matchLine = re.match ('\|[a-z]+=(?:\[\[)?([A-Z][A-Za-z ]*)\]\]', line)
print matchLine.group (1)
輸出爲Old McDonald
對我來說。如果您需要在字符串中間搜索,使用re.search
代替re.match
:
import re
line = 'blahblahblah|person=[[Old McDonald]]blahblahblah'
matchLine = re.search ('\|[a-z]+=(?:\[\[)?([A-Z][A-Za-z ]*)\]\]', line)
print matchLine.group (1)
@ user2057841查看我的示例程序。這個對我有用。 – 2013-02-28 09:13:45
謝謝!我剛看到它:)我會試試這個,非常感謝。 – user2057841 2013-02-28 09:15:22
對不起,我認爲它不適合我。我得到這個錯誤:AttributeError:'NoneType'對象沒有屬性'組' – user2057841 2013-02-28 09:20:57
提取意味着你要改變'line'? – 2013-02-28 09:07:24
我只是希望能夠從這一行中存儲舊麥當勞,所以我可以把它放在字典中。 – user2057841 2013-02-28 09:10:36