Python: Regex Basics

By Xah Lee. Date: . Last updated: .

Check If String Match

To use regex in Python, first you need to import re.

To check if a pattern is in string, use:, str, flags) → If pattern matches (part or whole of a string), then a Match Object is returned. Else, Returns None. (Match Object evaluates to True) [see Python Regex Match Object]

# -*- coding: utf-8 -*-
# python

# simple example of finding email address

import re

xx =" (\w+@\w+\.com) ", "this that")

if xx:
    print # →
    print "no"

For how to use regex flags, such as ignore case, see: Python Regex Flags.

Find and Replace

sub(pattern, repl, string) → Substitute pattern in string by the replacement repl. If the pattern isn't found, string is returned unchanged. Returns a new string.

Here's a simple example of using regex to replace text.

#-*- coding: utf-8 -*-
# python

# simple example of using regex to replace text

import re

myText = "123123";

newText = re.sub(r"2", r"8", myText)

print newText; # 183183

Here's a more complex example, replacing all “gif” image paths to “png” in HTML file.

# -*- coding: utf-8 -*-
# python

import re

myText = r"""<p><img src="./rabbits.gif" width="30" height="20">
and <img class="xyz" src="../cats.gif">,
but <img src ="tigers.gif">,
 <img src=

newText = re.sub(r'src\s*=\s*"([^"]+)\.gif"', r'src="\1.png"', myText)

print newText

You should use r to quote your regex pattern string, so any backslash such as are not interpreted. [see Python: Quote String]

Python Regex Reference

Python Regex Reference

If you have a question, put $5 at patreon and message me.