6.模式语法——锚定

锚定

锚定码 含义
^ 字符串或行的开始
$ 字符串或行的结束
\A 字符串开始
\Z 字符串结束
\b 一个单词开头或末尾的空串
\B 不在一个单词开头或末尾的空串
匹配字符串的第一个单词(或字母)
# 匹配字符串的第一个单词(或字母)
# ^ 表示字符串或行的开始,w+表示字母和数字

import re

# 文本
text = 'hello h123 abc123'

# 匹配规则
pattern = r'\bh\w*'

print(re.findall(pattern,text))

for i in re.finditer(pattern,text):
    print(i)

>>> 
['hello', 'h123']
<_sre.SRE_Match object; span=(0, 5), match='hello'>
<_sre.SRE_Match object; span=(6, 10), match='h123'>
# 匹配字符串的第一个单词(或字母)
# \A表示字符串的开始,w+表示字母和数字

import re

# 文本
text = 'hello world 123abc'

# 匹配规则
pattern = r'\A\w+'

print(re.findall(pattern,text))

for i in re.finditer(pattern,text):
    print(i)

>>> 
['hello']
<_sre.SRE_Match object; span=(0, 5), match='hello'>
匹配字符串最后一个单词
# 匹配字符串最后一个单词,跳过标点符号
# \w+ 表示1个或多个字母和数字
# \S* 表示0个或多个非空白符
# $ 表示字符串或行的结束

import re

# 文本
text = 'hello world 123abc'

# 匹配规则
pattern = r'\w+\S*$'

print(re.findall(pattern,text))

for i in re.finditer(pattern,text):
    print(i)

>>> 
['123abc']
<_sre.SRE_Match object; span=(12, 18), match='123abc'>
# 匹配字符串最后一个单词,跳过标点符号
# \Z 表示字符串或行的结束

import re

# 文本
text = 'hello world 123abc'

# 匹配规则
pattern = r'\w+\S*\Z'

print(re.findall(pattern,text))

for i in re.finditer(pattern,text):
    print(i)

>>> 
['123abc']
<_sre.SRE_Match object; span=(12, 18), match='123abc'>
匹配包含某字母
# 匹配包含字母'o'的单词

import re

# 文本
text = 'hello world oct 123abc'

# 匹配规则
pattern = r'\w*o\w*'

print(re.findall(pattern,text))

for i in re.finditer(pattern,text):
    print(i)

>>> 
['hello', 'world', 'oct']
<_sre.SRE_Match object; span=(0, 5), match='hello'>
<_sre.SRE_Match object; span=(6, 11), match='world'>
<_sre.SRE_Match object; span=(12, 15), match='oct'>
匹配某字母开头的单词
# 匹配字母'h'开头的单词

import re

# 文本
text = 'hello shanghai 123abc'

# 匹配规则
pattern = r'\bh\w*'

print(re.findall(pattern,text))

for i in re.finditer(pattern,text):
    print(i)

>>> 
['hello']
<_sre.SRE_Match object; span=(0, 5), match='hello'>
匹配某字母结尾的单词
# 匹配结尾为字母'o'的单词

import re

# 文本
text = 'hello our world'

# 匹配规则
pattern = r'\bh\w*'

print(re.findall(pattern,text))

for i in re.finditer(pattern,text):
    print(i)

>>> 
['hello']
<_sre.SRE_Match object; span=(0, 5), match='hello'>

你可能感兴趣的:(6.模式语法——锚定)