In [1]:
import re

In [2]:
s = 'I am Sam'

In [3]:
print(re.search('Sam', s))


<re.Match object; span=(5, 8), match='Sam'>

In [4]:
print(re.search('XXX', s))


None

In [5]:
m = re.search('Sam', s)

In [6]:
print(m.group())


Sam

In [7]:
print(m.start())


5

In [8]:
print(m.end())


8

In [9]:
print(m.span())


(5, 8)

In [10]:
s = 'I am Sam'

In [11]:
print(re.search('am', s))


<re.Match object; span=(2, 4), match='am'>

In [12]:
print(re.findall('am', s))


['am', 'am']

In [13]:
print(len(re.findall('am', s)))


2

In [14]:
print([m.span() for m in re.finditer('am', s)])


[(2, 4), (6, 8)]

In [15]:
s = 'I am Sam Adams'

In [16]:
print(re.findall('Sam|Adams', s))


['Sam', 'Adams']

In [17]:
print([m.span() for m in re.finditer('Sam|Adams', s)])


[(5, 8), (9, 14)]

In [18]:
s = 'I am Sam Adams'

In [19]:
print(re.findall('am', s))


['am', 'am', 'am']

In [20]:
print(re.findall('[a-zA-Z]+am[a-z]*', s))


['Sam', 'Adams']

In [21]:
s = 'I am Sam'

In [22]:
print(re.search('sam', s))


None

In [23]:
print(re.search('sam', s, flags=re.IGNORECASE))


<re.Match object; span=(5, 8), match='Sam'>