文章目录- 1. ? 表示0个或者1个
- 2. * 表示0个或者多个
- 3. 表示1个或者多个
- 4. {} 设置匹配次数
- 5. ^开头,$结尾,. 表示除n外任意字符
- 6. w 表示字母,数字,下划线
- 7. s表示空格
- 8. re.finditer
1. ? 表示0个或者1个
代码语言:javascript复制import re
def text_match(text, pattern):
if re.search(pattern, text):
return "找到一个匹配!"
else:
return "没有找到匹配!"
print(text_match('ac', 'ab?'))
print(text_match('bc', 'ab?'))
print(text_match('abc', 'ab?'))
print(text_match('abbc', 'ab?'))
输出:
代码语言:javascript复制找到一个匹配!
没有找到匹配!
找到一个匹配!
找到一个匹配!
2. * 表示0个或者多个
代码语言:javascript复制print(text_match('ac', 'ab*'))
print(text_match('bc', 'ab*'))
print(text_match('abc', 'ab*'))
print(text_match('abbc', 'ab*'))
输出:
代码语言:javascript复制找到一个匹配!
没有找到匹配!
找到一个匹配!
找到一个匹配!
?是 * 的子集
3. 表示1个或者多个
代码语言:javascript复制print(text_match('ac', 'ab '))
print(text_match('bc', 'ab '))
print(text_match('abc', 'ab '))
print(text_match('abbc', 'ab '))
输出:
代码语言:javascript复制没有找到匹配!
没有找到匹配!
找到一个匹配!
找到一个匹配!
4. {} 设置匹配次数
代码语言:javascript复制print(text_match('abc', 'ab{2}'))
print(text_match('abbc', 'ab{2}'))
print(text_match('abbbbc', 'ab{3,5}?')) # 范围3-5次
输出:
代码语言:javascript复制没有找到匹配!
找到一个匹配!
找到一个匹配!
5. ^开头,$结尾,. 表示除n外任意字符
代码语言:javascript复制print(text_match('abbbc', '^a.*c$'))
代码语言:javascript复制找到一个匹配!
6. w 表示字母,数字,下划线
代码语言:javascript复制print(text_match('abbbc', '^w '))
print(text_match('1abbbc', '^w '))
print(text_match('_abbbc', '^w '))
print(text_match('@abbbc', '^w '))
代码语言:javascript复制找到一个匹配!
找到一个匹配!
找到一个匹配!
没有找到匹配!
7. s表示空格
代码语言:javascript复制print(text_match('abbbc def', 's'))
print(text_match('abbbcdef', 's'))
代码语言:javascript复制找到一个匹配!
没有找到匹配!
8. re.finditer
代码语言:javascript复制text = "love never fails.nlove is forgive"
for mat in re.finditer('love', text):
s = mat.start()
e = mat.end()
print('find %s at %d:%d'%(text[s:e], s, e))
代码语言:javascript复制find love at 0:4
find love at 18:22