Python regex string matching?

Question:

I’m having a hell of a time trying to transfer my experience with javascript regex to Python.

I’m just trying to get this to work:

print(re.match('e','test'))

…but it prints None. If I do:

print(re.match('e','est'))

It matches… does it by default match the beginning of the string? When it does match, how do I use the result?

How do I make the first one match? Is there better documentation than the python site offers?

Asked By: mowwwalker

||

Answers:

re.match implicitly adds ^ to the start of your regex. In other words, it only matches at the start of the string.

re.search will retry at all positions.

Generally speaking, I recommend using re.search and adding ^ explicitly when you want it.

http://docs.python.org/library/re.html

Answered By: Oscar Korz

the docs is clear i think.

re.match(pattern, string[, flags])ΒΆ

If zero or more characters **at the beginning of string** match the

regular expression pattern, return a corresponding MatchObject
instance. Return None if the string does not match the pattern; note
that this is different from a zero-length match.

Answered By: Kent
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.