如何使用RE模塊查找除了標籤中的所有單詞?Python - 正則表達式 - 查找除標籤外的所有單詞
我知道如何找到一些東西,但如何做到這一點呢?就像我寫了一些東西來搜索,但我想搜索除了標籤和標籤本身內的所有內容之外的每個單詞?
到目前爲止,我管理這個:
f = open (filename,'r')
data = re.findall(r"<.+?>", f.read())
那麼它裏面打印標籤<>
一切,而是如何使它發現,除了那些標籤裏面這就是每一個字? 我試過^
,用在[]
裏面的模式開頭,但是那些符號如.
的字面上沒有特別的意思。 此外,我設法解決這個問題,通過分割字符串,使用'''\= <>"'''
,然後檢查整個字符串中的<>
標籤(如對齊,右,td等)內的單詞,並將不在<>標籤內的單詞追加到另一個列表中。但這有點難以解決。
是否有一些簡單的方法來搜索除<>
以及這些標籤本身內部的任何內容之外的每個單詞? 所以我們說串'hello 123 <b>Bold</b> <p>end</p>'
與re.findall
,將返回:
['hello', '123', 'Bold', 'end']
如果你使用HTML,你有沒有考慮過像html5lib這樣的東西,而不是試圖自己計算正則表達式? http://code.google.com/p/html5lib/ – zigg
好吧,我正在尋找RE的能力。還是有沒有簡單的解決這個問題?我只發現你可以排除[]中的文字字符,但是如何構造類如<.*?>。 – Andrius
正則表達式確實可以做很多事情,但這並不意味着你應該使用它們來重新發明輪子,特別是對於像HTML這樣的事情來說,解析實際上相當複雜。 – zigg