Python Regex Anchors

Summary: in this tutorial, you’ll learn how to use regular expression anchors to match the character positions including the beginning and the end of a string.

Introduction to the regex anchors

Regular expressions provide you with two anchors that match the positions of characters:

  • ^ – the caret anchor matches at the beginning of a string.
  • $ – the dollar anchor matches at the end of a string.

The following example uses the \d\d to match two digits in a time string:

import re

time = '12:20'
matches = re.finditer('\d\d', time)
for match in matches:
    print(match.group())Code language: JavaScript (javascript)

It returns two matches:

12
20

If you use the caret anchor (^), you’ll get one group which is the two digits at the beginning of the string. For example:

import re

time = '12:20'
matches = re.finditer('^\d\d', time)
for match in matches:
    print(match.group())Code language: JavaScript (javascript)

Output:

12

Similarly, if you use the $ anchor, you’ll get the last two digits because the $ matches \d\d at the end of the time string:

import re

time = '12:20'
matches = re.finditer('\d\d$', time)
for match in matches:
    print(match.group())Code language: JavaScript (javascript)

Output:

20

To check if a string is a time string, you can combine the caret (^) and dollar ($) anchors. For example:

import re

time = '12:20'
matches = re.finditer('^\d\d:\d\d$', time)
for match in matches:
    print(match.group())Code language: JavaScript (javascript)

Output:

12:20Code language: CSS (css)

Note that the pattern ^\d\d:\d\d$ doesn’t validate the valid hour and minute. For example, it also matches the following string:

30:99Code language: CSS (css)

It’s not a valid time string because the valid hour is from 1 to 24 and the valid minute is from 00 to 59. Later, you’ll learn how to match the time string with valid values using the alternation.

Summary

  • Regex anchors match character positions, not the characters.
  • The caret anchor (^) matches at the beginning of a string.
  • The dollar anchor ($) matches at the end of a string.
Did you find this tutorial helpful ?