Python: Regular Expression (regex) Example

, , …,

Check If String Match

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

To check if a pattern is in string, use:

re.search(pattern, 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)

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

# simple example of finding email address

import re

xx = re.search(r" (\w+@\w+\.com) ", "this xyz@example.com that")

if xx:
    print xx.group(1) # → xyz@xyz.com
else:
    print "no"

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

Find & 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=
"bird.gif">!</p>"""

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. 〔☛ Python: Quote String

Python Regex Methods with Examples

For complete detail of all Python regex methods with examples, see: Python Regex Tutorial: String Pattern Matching

blog comments powered by Disqus