import re
string = "section_category_name = 'computer and equipment expense' and date >= 2015-01-01 and date <= 2015-03-31"
lexer = re.compile(r"'[^']*'|[^ ]+|$")
results = []
buff = []
for match in lexer.finditer(string):
token = match.group(0) # group 0 is the entire matching string
if token in ('and', ''):
results.append(' '.join(buff))
buff = []
else:
buff.append(token)
print results
aW1wb3J0IHJlCgpzdHJpbmcgPSAic2VjdGlvbl9jYXRlZ29yeV9uYW1lID0gJ2NvbXB1dGVyIGFuZCBlcXVpcG1lbnQgZXhwZW5zZScgYW5kIGRhdGUgPj0gMjAxNS0wMS0wMSBhbmQgZGF0ZSA8PSAyMDE1LTAzLTMxIgoKbGV4ZXIgPSByZS5jb21waWxlKHIiJ1teJ10qJ3xbXiBdK3wkIikKCnJlc3VsdHMgPSBbXQoKYnVmZiA9IFtdCmZvciBtYXRjaCBpbiBsZXhlci5maW5kaXRlcihzdHJpbmcpOgoJdG9rZW4gPSBtYXRjaC5ncm91cCgwKSAjIGdyb3VwIDAgaXMgdGhlIGVudGlyZSBtYXRjaGluZyBzdHJpbmcKCQoJaWYgdG9rZW4gaW4gKCdhbmQnLCAnJyk6CgkJcmVzdWx0cy5hcHBlbmQoJyAnLmpvaW4oYnVmZikpCgkJYnVmZiA9IFtdCgllbHNlOgoJCWJ1ZmYuYXBwZW5kKHRva2VuKQoKcHJpbnQgcmVzdWx0cw==