In [1]:
# https://docs.python.jp/3/howto/regex.html
# https://docs.python.jp/3/library/re.html

In [2]:
import re

In [3]:
s = 'one two one two'

In [4]:
m = re.match('one', s)
print(m)


<_sre.SRE_Match object; span=(0, 3), match='one'>

In [5]:
print(m.group())
print(m.start())
print(m.end())
print(m.span())


one
0
3
(0, 3)

In [6]:
m = re.match('one two', s)
print(m)
print(m.group())


<_sre.SRE_Match object; span=(0, 7), match='one two'>
one two

In [7]:
m = re.match('(one) (two)', s)
print(m)
print(m.group())
print(m.groups())


<_sre.SRE_Match object; span=(0, 7), match='one two'>
one two
('one', 'two')

In [8]:
m = re.match('two', s)
print(m)


None

In [9]:
m = re.search('one', s)
print(m)


<_sre.SRE_Match object; span=(0, 3), match='one'>

In [10]:
m = re.search('two', s)
print(m)


<_sre.SRE_Match object; span=(4, 7), match='two'>

In [11]:
m = re.findall('one', s)
print(m)


['one', 'one']

In [12]:
m = re.findall('one two', s)
print(m)


['one two', 'one two']

In [13]:
m = re.findall('(one) (two)', s)
print(m)


[('one', 'two'), ('one', 'two')]

In [14]:
m = re.finditer('one', s)
print(m)


<callable_iterator object at 0x10e786470>

In [15]:
for match in m:
    print(match)


<_sre.SRE_Match object; span=(0, 3), match='one'>
<_sre.SRE_Match object; span=(8, 11), match='one'>

In [16]:
m = re.sub('one', 'ONE', s)
print(m)


ONE two ONE two

In [17]:
m = re.sub('one two', 'xxx', s)
print(m)


xxx xxx

In [18]:
m = re.sub('(one) (two)', '\\1X\\2', s)
print(m)


oneXtwo oneXtwo

In [19]:
m = re.sub('(one) (two)', r'\1X\2', s)
print(m)


oneXtwo oneXtwo

In [20]:
m = re.subn('one', 'ONE', s)
print(m)


('ONE two ONE two', 2)

In [21]:
m = re.split(' ', s)
print(m)


['one', 'two', 'one', 'two']

In [22]:
p = re.compile('one')

In [23]:
m = p.match(s)
print(m)


<_sre.SRE_Match object; span=(0, 3), match='one'>

In [24]:
m = p.findall(s)
print(m)


['one', 'one']

In [25]:
m = p.sub('ONE', s)
print(m)


ONE two ONE two