我有一个这样的查询字符串:
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/searchparser.py