我有一個這樣的查詢字符串查詢字符串中的所有詞/詞組:Python的正則表達式:發現含有或和與
s = 'word1 AND word2 word3 OR "word4 word5" OR word6 AND word7 word8'
我需要找到內或和與所有的單詞或短語,這樣的結果將是像這樣的列表(最好不AND/OR和詞/短語之間的空格):
l = ['word1', 'word2 word3', '"word4 word5"', 'word6', 'word7 word8']
我試着用正則表達式瞎搞,但便無法找到一個方法來做到這一點。
感謝您的幫助。
謝謝。那是我正在尋找的答案。以某種方式忘了re.split。 :) – 2011-03-25 04:31:26
+1爲pyparsing ref。只分開AND和OR就放棄它們的單獨語義(AND和OR不是同義詞),忽略優先級(「X AND Y OR Z」不同於「X AND(Y OR Z)」)。 pyparsing wiki有幾個例子可供參考:http://pyparsing.wikispaces.com/file/view/simpleBool.py和http://pyparsing.wikispaces.com/file/view/searchparser.py。這些例子也被擴展到他們自己的項目Booleano和Whoosh。 – PaulMcG 2011-03-25 13:08:12
對於我的特殊問題,沒有必要知道它是「AND」還是「OR」。我只需要查詢中的單詞,與語義無關。 – 2011-04-29 02:26:08