match point

Thierry no at mail.com
Tue Dec 22 05:56:48 EST 2015


Hi,

Reading the docs about regular expressions, I am under the impression
that calling
	re.match(pattern, string)
is exactly the same as
	re.search(r'\A'+pattern, string)

Same for fullmatch, that amounts to
	re.search(r'\A'+pattern+r'\Z', string)

The docs devote a chapter to "6.2.5.3. search() vs. match()", but they
only discuss how match() is different from search() with '^', completely
eluding the case of search() with r'\A'.

At first I thought those functions could have been introduced at a time
when r'\A' and r'\Z' did not exist, but then I noticed that re.fullmatch
is a recent addition (python 3.4)

Surely the python devs are not cluttering the interface of the re module
with useless functions for no reason, so what am I missing?

Maybe re.match has an implementation that makes it more efficient? But
then why would I ever use r'\A', since that anchor makes a pattern match
in only a single position, and is therefore useless in functions like
re.findall, re.finditer or re.split?

Thanks,

Thierry





More information about the Python-list mailing list