# A Python program to demonstrate working of re.match().
import re
# Lets use a regular expression to match a date string in the form of Month name followed by day number
regex = r"([a-zA-Z]+) (d+)"
match = re.search(regex, "I was born on march 5")
if match != None:
# We reach here when the expression "([a-zA-Z]+) (d+)" matches the date string. This will print [14, 21), since it matches at index 14 and ends at 21.
print ("Match at index %s, %s" % (match.start(), match.end()))
# We us group() method to get all the matches and captured groups. The groups contain the matched values. In particular: match.group(0) always returns the fully matched string match.group(1) match.group(2), ... return the capture groups in order from left to right in the input string match.group() is equivalent to match.group(0) So this will print "march 5"
print ("Full match: %s" % (match.group(0)))
# So this will print "march"
print ("Month: %s" % (match.group(1)))
# So this will print "5"
print ("Day: %s" % (match.group(2)))
else:
print ("The regex pattern does not match.")
# credit to Stack Overflow user in the source link
# finds isolated alphabetical characters
import re
s = "fish oil B stack peanut c <b>"
words = re.finditer('S+', s)
has_alpha = re.compile(r'[a-zA-Z]').search
for word in words:
if len(word.group()) == 1 and has_alpha(word.group()):
print(word.start()) # prints the index inside the string