Python Regexp:查找包含OR和AND的查询字符串中的所有单词/短语

Tor*_*cht 2 python regex

我有一个这样的查询字符串:

s = 'word1 AND word2 word3 OR "word4 word5" OR word6 AND word7 word8'
Run Code Online (Sandbox Code Playgroud)

我需要找到OR和AND中的所有单词或短语,因此结果将是这样的列表(最好没有AND/OR和单词/短语之间的空格):

l = ['word1', 'word2 word3', '"word4 word5"', 'word6', 'word7 word8']
Run Code Online (Sandbox Code Playgroud)

我已经尝试过乱用正则表达式但是找不到办法做到这一点.

谢谢您的帮助.

小智 6

如果你想使用正则表达式,re.split应该这样做:

re.split(' OR | AND ', 'word1 AND word2 word3 OR "word4 word5" OR word6 AND word7 word8')
['word1', 'word2 word3', '"word4 word5"', 'word6', 'word7 word8']
Run Code Online (Sandbox Code Playgroud)

如果你需要更大的锤子,你可以查看像pyparsing这样的东西:http://pyparsing.wikispaces.com/file/view/sea​​rchparser.py