Revision 16 as of 2006-03-25 16:33:08

Clear message

http://wiki.python.org/moin/RegularExpression?action=AttachFile&do=get&target=regex_characters.png

flags when compiling:

http://taoriver.net/img/for_pi/regex_flags.png

(All images PD, released by author, LionKimbro.)

Searching & Matching

You can search or match.

You can also split on a pattern.

For example:

   1 import re
   2 split_up = re.split(r"(\(\([^)]+\)\))",
   3                     "This is a ((test)) of the ((emergency broadcasting station.))")

...which produces:

["This is a ", "((test))", " of the ", "((emergency broadcasting station.))" ]

Compiling

If you use a regex a lot, compile it first.

Consider:

   1 import re
   2 match_obj=re.match("<(.*?)>(.*?)</(.*?)>", "<h1>robot</h1>")
   3 print mo.groups()

...which outputs: ('h1', 'robot', 'h1')

If you were going to do that match a lot, you could compile it, like so:

   1 import re
   2 match_re=re.compile("<(.*?)>(.*?)</(.*?)>")
   3 match_obj=match_re.match("<h1>robot</h1>")
   4 print match_obj.groups()

...which yields the same result.

I don't know how much faster compiled forms are than non-compiled forms.

See Also

Discussion

Requests

Problem?

The following feature does not seems to work in python:

For example, the ICU regular expression provides the following patterns:

-- anonymous

I don't understand the problem. -- LionKimbro DateTime(2006-03-25T16:31:35Z)

Visualization

The image isn't meant to be explanatory, it is meant to be reference and refreshing material.

That said: The "match string" is the final product of either of the two above expressions. It is what the above two expressions will literally match. If you have a better phrase, or would like to correct "raw" to "regex," feel free to download the SVG, edit the text, place an image on the web, and link it from here. (The damn [http://visual.wiki.taoriver.net/moin.cgi/LongImageIncorporationProcess LongImageIncorporationProcess] strikes again.) I may eventually get around to it myself one day, but it seems there are higher priorities, and the diagram is "good enough."

That said, I appreciate the correction. -- LionKimbro DateTime(2005-01-01T00:22:14Z)

Image Hosting

At the top of this page were two images/scehmes about re. Is it possible to redraw them here somehow? That server is not working, maybe someone has them dowloaded locally. Thanks a lot. -- PavelKosina

I've uploaded one as an attachment, still need to upload the other... And, the source...

(Anyone can do this, though, when the computers are online.)

-- LionKimbro DateTime(2006-03-25T16:31:35Z)

Unable to edit the page? See the FrontPage for instructions.