4.2.2 Matching vs Searching
Python offers two different primitive operations based on regular expressions: match and
search. If you are accustomed to Perl's semantics, the search operation is what you're looking
for. See the search() function and corresponding method of compiled
regular expression objects.
Note that match may differ from search using a regular expression beginning with "^": "^" matches only at the
start of the string, or in MULTILINE mode also immediately following
a newline. The ``match'' operation succeeds only if the pattern matches at the start of the
string regardless of mode, or at the starting position given by the optional pos
argument regardless of whether a newline precedes it.
re.compile("a").match("ba", 1) # succeeds
re.compile("^a").search("ba", 1) # fails; 'a' not at start
re.compile("^a").search("\na", 1) # fails; 'a' not at start
re.compile("^a", re.M).search("\na", 1) # succeeds
re.compile("^a", re.M).search("ba", 1) # fails; no preceding \n
|