REGEX - Differences between `^`, `$` and `\A`, `\Z`
As I know,
re proposes the following boundary matches.
^matches at the beginning of a line.
$matches at the end of a line.
\Amatches the beginning of the input.
\Zmatches the end of the input.
Can you give me a concret example showing a real difference between between
The difference only becomes apparent when you use the
re.MULTILINE multiline flag:
>>> re.search(r'^word', 'Line one\nword on line two\n', flags=re.M) <_sre.SRE_Match object at 0x10124f578> >>> re.search(r'\Aword', 'Line one\nword on line two\n', flags=re.M) is None True
^ matched at the start of a line (following a newline).
$ matches at the end of a line:
>>> re.search(r'word$', 'Line one word\nLine two\n', flags=re.M) <_sre.SRE_Match object at 0x10123e1d0> >>> re.search(r'word\Z', 'Line one word\nLine two\n', flags=re.M) is None True
From the documentation:
When specified, the pattern character
'^'matches at the beginning of the string and at the beginning of each line (immediately following each newline); and the pattern character
'$'matches at the end of the string and at the end of each line (immediately preceding each newline). By default,
'^'matches only at the beginning of the string, and
'$'only at the end of the string and immediately before the newline (if any) at the end of the string.
Автор: Martijn Pieters
Размещён: 19.03.2014 10:21
\A always matches at the start of the string regardless,
\Z always at the end.