34

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?

2 Answers 2

59

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

Sign up to request clarification or add additional context in comments.

Comments

9

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.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.