matching any number of any character

Tim Peters tim_one at email.msn.com
Mon Aug 23 08:06:59 CEST 1999


[Lyn A Headley]
> To do it, I want to use the regex module, heretical though that may
> be.

Not heretical so much as ornery and self-destructive <wink>.

> I think my brain is missing a piece, because I can't seem to
> accomplish such a task.  I thought this would work:
>
> >>> import regex
> >>> rx = regex.compile('\(.\|\n\)+')
> >>> rx.match('abc')
> 3
> >>  rx.group(1)
> 'c'
>
> but I wanted 'abc'!

Persist:

>>> rx.group(0)
'abc'
>>>

The thing inside your parens only matches one character; repeating it doesn't
change that; you get back the character (c) it matched last.  Life is easier
with re:

>>> import re
>>> rx = re.compile("(.+)", re.DOTALL)
>>> m = rx.match("abc")
>>> m.group(1)
'abc'
>>>

this-is-your-brain-that-was-your-brain-on-regex-ly y'rs  - tim






More information about the Python-list mailing list