Professional Documents
Culture Documents
Ge Rex
Ge Rex
Ge Rex
❑ RegEx can be used to check if a string contains the specified search pattern.
❑ RegEx Module
✓ Python has a built-in package called re, which can be used to work with Regular Expressions.
➢ import re #Check if the string starts with "The" and ends with "Spain":
❑ The re module offers a set of functions that allows us to search a string for a match:
❑ Function Description
import re
Output: #Return a list containing every occurrence of "ai":
['ai', 'ai'] txt = "The rain in Spain"
x = re.findall("ai", txt)
print(x)
Note: The list contains the matches in the order they are found. If no matches are found, an empty list is returned.
import re
import re
#output: The9rain9in9Spain
❑ The Match object has properties and methods used to retrieve information about the search, and the result:
✓ .span() returns a tuple containing the start-, and end positions of the match.
✓ .string returns the string passed into the function
✓ .group() returns the part of the string where there was a match Print the string passed into the function:
Print the position (start- and end-position) of the first match import re
occurrence.
txt = "The rain in Spain"
The regular expression looks for any words that starts with x = re.search(r"\bS\w+", txt)
an upper case "S": print(x.string) #The rain in Spain
import re Print the part of the string where there was a match.
txt = "The rain in Spain" The regular expression looks for any words that
x = re.search(r"\bS\w+", txt) starts with an upper case "S":
print(x.span()) #(12, 17)
import re
import re
#Find all lower case characters alphabetically between "a" and "m":
x = re.findall("[a-m]", txt)
x = re.findall("\d", txt)
#Search for a sequence that starts with "he", followed by two (any) characters, and an "o":
x = re.findall("he..o", txt)
print(x) #['hello']
import re
x = re.findall("^hello", txt)
if x:
print("Yes, the string starts with 'hello'")
else:
print("No match")
x = re.findall("world$", txt)
if x:
print("Yes, the string ends with 'world'")
else:
print("No match")
x = re.findall("aix*", txt)
print(x)
if x:
print("Yes, there is at least one match!")
else:
print("No match")
Output: ['ai', 'ai', 'ai', 'ai’] Yes, there is at least one match!
import re
x = re.findall("aix+", txt)
print(x)
if x:
print("Yes, there is at least one match!")
else:
print("No match")
Output: [] No match
import re
#Check if the string contains "a" followed by exactly two "l" characters:
x = re.findall("al{2}", txt)
print(x)
if x:
print("Yes, there is at least one match!")
else:
print("No match")
x = re.findall("falls|stays", txt)
print(x)
if x:
print("Yes, there is at least one match!")
else:
print("No match")
✓ A special sequence is a \ followed by one of the characters in the list below, and has a special meaning:
import re
#Check if "ain" is present at the beginning of a WORD: #Check if "ain" is present at the end of a WORD:
print(x) print(x)
if x: if x:
print("Yes, there is at least one match!") print("Yes, there is at least one match!")
else: else:
print("No match") print("No match")
import re import re
#Check if "ain" is present, but NOT at the beginning of a #Check if "ain" is present, but NOT at the end of a
word: word:
print(x) print(x)
if x: if x:
print("Yes, there is at least one match!") print("Yes, there is at least one match!")
else: else:
print("No match") print("No match")
x = re.findall("\d", txt)
print(x)
if x:
print("Yes, there is at least one match!")
else:
print("No match")
#[] No match
import re
x = re.findall("\D", txt)
print(x)
if x:
print("Yes, there is at least one match!")
else:
print("No match")
#['T', 'h', 'e', ' ', 'r', 'a', 'i', 'n', ' ', 'i', 'n', ' ', 'S', 'p', 'a', 'i', 'n’] Yes, there is at least one match!
import re
x = re.findall("\s", txt)
print(x)
if x:
print("Yes, there is at least one match!")
else:
print("No match")
x = re.findall("\S", txt)
print(x)
if x:
print("Yes, there is at least one match!")
else:
print("No match")
#['T', 'h', 'e', 'r', 'a', 'i', 'n', 'i', 'n', 'S', 'p', 'a', 'i', 'n’] Yes, there is at least one match!
import re
#Return a match at every word character (characters from a to Z, digits from 0-9, and the underscore _
character):
x = re.findall("\w", txt)
print(x)
if x:
print("Yes, there is at least one match!")
else:
print("No match")
#['T', 'h', 'e', 'r', 'a', 'i', 'n', 'i', 'n', 'S', 'p', 'a', 'i', 'n’] Yes, there is at least one match!
import re
#Return a match at every NON word character (characters NOT between a and Z. Like "!", "?" white-space etc.):
x = re.findall("\W", txt)
print(x)
if x:
print("Yes, there is at least one match!")
else:
print("No match")
x = re.findall("Spain\Z", txt)
print(x)
if x:
print("Yes, there is a match!")
else:
print("No match")
✓ A set is a set of characters inside a pair of square brackets [] with a special meaning:
import re
if x:
print("Yes, there is at least one match!")
else:
print("No match")
import re
print(x) ['h', 'e', 'a', 'i', 'n', 'i', 'n', 'a', 'i', 'n']
Yes, there is at least one match!
if x:
print("Yes, there is at least one match!")
else:
print("No match")
import re
print(x) ['T', 'h', 'e', ' ', 'i', ' ', 'i', ' ', 'S', 'p', 'i']
Yes, there is at least one match!
if x:
print("Yes, there is at least one match!")
else:
print("No match")
import re
print(x) []
No match
if x:
print("Yes, there is at least one match!")
else:
print("No match")
import re
if x:
print("Yes, there is at least one match!")
else:
print("No match")
import re
if x:
print("Yes, there is at least one match!")
else:
print("No match")
import re
#Check if the string has any characters from a to z lower case, and A to Z upper case:
x = re.findall("[a-zA-Z]", txt)
print(x)
if x:
print("Yes, there is at least one match!")
else:
print("No match")
#['t', 'i', 'm', 'e', 's', 'b', 'e', 'f', 'o', 'r', 'e', 'A', 'M’] Yes, there is at least one match!
import re
if x:
print("Yes, there is at least one match!")
else:
print("No match")