4.2.2 Matching vs. Searching
Keywords: lib

##
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