# Examples for using Python's Regular expression module "re" # sr 11/30/2013 import re '''OVERVIEW '|' means 'or' '.' matches any single character '()' groups into substrings ''' # read in data fileobj = '''abc mno def pqr ghi stu jkl vwx''' data = fileobj.strip().split('\n') # A >> if 's' in line print (50*'-' + '\nA\n' + 50*'-') for line in data: if re.search('abc', line): print(">>", line) else: print(" ", line) ''' -------------------------------------------------- A -------------------------------------------------- >> abc mno def pqr ghi stu jkl vwx''' # B >> if 's' in line or 'r' in line print (50*'-' + '\nB\n' + 50*'-') for line in data: if re.search('abc|efg', line): print(">>", line) else: print(" ", line) ''' -------------------------------------------------- B -------------------------------------------------- >> abc mno def pqr ghi stu jkl vwx ---------------''' # C >> # use () to remember which object was found and return a match object print (50*'-' + '\nC\n' + 50*'-') for line in data: match = re.search('(abc|efg)', line) # note the parantheses if match: print(match.group(1)) # prints 'abc' if found, else None # match.group(0) is the whole pattern that matched ''' -------------------------------------------------- C -------------------------------------------------- abc''' # read in data fileobj = '''2013-01-01 2012-02-02 ghi stu 2012-03-03''' data = fileobj.strip().split('\n') # D >> use '.' to match 'any character' print (50*'-' + '\nD\n' + 50*'-') for line in data: match = re.search('(2012)-(..)-(..)', line) # note the parantheses if match: print(match.group(1), match.group(2), match.group(3)) ''' -------------------------------------------------- D -------------------------------------------------- 2012 02 02 2012 03 03'''