我想(理想情況下分別在組1 & 2)分析文本,收集文化+亞文化的以下塊:使用正則表達式查找組()與重複{}
首頁衆神之中。極樂世界,阿瓦隆,人間天堂.--凱爾特人(普通):麥考洛克凱爾特人14;愛爾蘭:同上。 37f。,114ff。,Cross;威爾士語:同上。 193; Icel .: MacCulloch Eddic 312ff。印度教:Penzer I 125 n。 1;猶太人:紐曼人 - 夏威夷:貝克威斯神話67;所以。上午。印度語(Apapocuv \ xe1-Guarani):M \ xtra9 RMLP XXXIII 122;非洲(方):Trilles 130
我最好的嘗試到目前爲止使用以下正則表達式:
(\w+)\.?\:|(\w+\.?\s?){0,3}\((.*?)\)\:
導致以下:
[(u'', u'Celtic ', u'general'), (u'Irish', u'', u''), (u'Welsh', u'', u''), (u'Icel', u'', u''), (u'Hindu', u'', u''), (u'Jewish', u'', u''), (u'Hawaii', u'', u''), (u'', u'Indian ', u'Apapocuv\xe1-Guarani'), (u'', u'Africa ', u'Fang')]
它的問題是它在'Apapocuv \ xe1-Guarani'之前只獲得'印度'而不是如此。上午。印度人。
這裏是整個系統我的邏輯/需求的細分:
- 第一組
'(\w+)\.?\:'
是任何一個字的結尾:(愛爾蘭人,猶太人,夏威夷,印度) - 二組
'(\w+\.?\s?){0,3}'
是專門獲得「所以我是印度人」這是我遇到麻煩的部分。我得到印度人,但不是那樣。上午。印度人。我還需要得到如下變體,例如「So.Am。Indian,SA Indian,So.A. Indian,S.Am.India」 - 第三組
'\((.*?)\)\'
(與第二部分一起)獲得額外的子部族所以:非洲(方)
我很想把這些工作分成兩組,但我可以在以後的代碼中處理三個。如果有人有任何想法,我會非常感激。
哇謝謝你!這工作得很好,簡化了我的兩個組,所以非常感謝。我唯一的問題是(也許我沒有詳細說明),它不允許捕捉「我是印度人」,而只是「印度人」。如果以前有三個縮寫詞,我需要能夠捕捉到,比如「So.Am。Indian,SA Indian,So.A. Indian,S.Am。Indian」如果你知道,請告訴我,謝謝再次。:) – theredknight 2012-02-01 22:44:46
更新的例子。 – 2012-02-01 23:37:56
太棒了!完美的作品!謝謝! – theredknight 2012-02-02 08:10:58