Python regex string matching?

44,115

Solution 1

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

Solution 2

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.

Share:
44,115
mowwwalker
Author by

mowwwalker

Updated on November 04, 2020

Comments

  • mowwwalker
    mowwwalker over 3 years

    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?