Julien <[EMAIL PROTECTED]> writes:

> I'm fairly new in Python and I haven't used the regular expressions
> enough to be able to achieve what I want.
> I'd like to select terms in a string, so I can then do a search in my
> database.
>
> query = '   "  some words"  with and "without    quotes   "  '
> p = re.compile(magic_regular_expression)   $ <--- the magic happens
> m = p.match(query)

I don't think you can achieve this with a single regular expression.
Your best bet is to use p.findall() to find all plausible matches, and
then rework them a bit.  For example:

p = re.compile(r'"[^"]*"|[\S]+')
p.findall(query)
['"  some words"', 'with', 'and', '"without    quotes   "']

At that point, you can easily iterate through the list and remove the
quotes and excess whitespace.
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to