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?
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.
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.
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?
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.
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.