kj <no.em...@please.post> wrote:

> 
> 
> For a recovering Perl-head like me it is difficult to understand
> why Python's re module offers both match and search.  Why not just
> use search with a beginning-of-string anchor?  I find it particularly
> puzzling because I have this (possibly mistaken) idea that the
> Python design philosophy tends towards minimalism, a sort of Occam's
> razor, when it comes to language entities; i.e. having re.match
> along with re.search seems to me like an "unnecessary multiplication
> of entities".  What am I missing?
> 
RTFM?

http://docs.python.org/library/re.html#matching-vs-searching says:

> Note that match may differ from search even when using a regular
> expression beginning with '^': '^' matches only at the start of the
> string, or in MULTILINE mode also immediately following a newline. The
> “match” operation succeeds only if the pattern matches at the start of
> the string regardless of mode, or at the starting position given by
> the optional pos argument regardless of whether a newline precedes
> it. 

So, for example:

>>> re.compile("c").match("abcdef", 2)
<_sre.SRE_Match object at 0x0000000002C09B90>
>>> re.compile("^c").search("abcdef", 2)
>>>

The ^ anchors you to the start of the string (or start of line in multiline 
mode) even if you specify a non-zero position. The match method just tells 
you if the pattern matches at the specified starting position regardless of 
whether it is the start of the string.

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to