1
我試圖從維基百科文章中提取語言列表:List_of_programming_languages_by_type。有幾行字:維基百科鏈接與正則表達式解析
- [阿達(編程語言)|阿達](多用途語言)
- [Afnix(編程語言)| Afnix] –對數據的併發訪問自動保護(以前稱爲'阿萊夫',但無關 '' Alef的 '')
- [Cilk的] –併發[C(編程語言)| C]
幾乎所有人除了包含多個[[]]塊的行(示例中帶有Click語言的行)之外,l行被正確解析。解析代碼:
for line in lines:
lang = re.search('^\*+\s*(\[\['
'((?P<wiki_link>.+?)(\|))?'
'(?P<lang_name>.+?)'
'\]\])', line)
if lang:
print lang.groupdict()
輸出:
{'wiki_link': u'Ada (programming language)', 'lang_name': u'Ada'}
{'wiki_link': u'Afnix (programming language)', 'lang_name': u'Afnix'}
{'wiki_link': u'Cilk]] – a concurrent [[C (programming language)', 'lang_name': u'C'}
我怎麼能在一個在線多[[]]塊管理?
P.S.預期結果:
{'wiki_link': None, 'lang_name': u'Clik'}
爲什麼使用普通正則表達式而不是維基標記解析器? –
你的預期結果是什麼? – juliomalegria
馬特,這只是出於教育原因:) –