1. 定义
- 用一种描述性的语言给字符串定义一个 规则,符合规则的字符串,即“匹配”。
2. 结构
2.1 行定位符
str1 = 'Nature'
str2 = 'Science'
2.2 元字符
^ | 开头 |
---|
$ | 结束 | \w | 匹配字母、数字、下划线或汉字 | . | 匹配除换行符以外的任意字符 | \W | 匹配字母、数字、下划线或汉字以外的字符 | \s | 匹配任意的空白符 | \S | 匹配任意的非空白符 | \b | 匹配单词的开始或结束 | \d | 匹配数字 |
2.3 限定符
? | 匹配前面的字符零次或一次 | iwtpa?p:匹配iwtpp和iwtpap |
---|
+ | 匹配前面的字符一次或多次 | iwtpap+:匹配的范围从iwtpap到iwtpapp… | * | 匹配前面的字符零次或多次 | iwtpap*:匹配的范围从iwtpa到iwtpapp… | {n} | 匹配前面的字符n次 | iwtpap{5}:只匹配iwtpappppp | {n,} | 匹配前面的最少n次 | iwtpap{5,}:匹配的范围从iwtpappppp到iwtpappppp… | {n,m} | 匹配前面的最少n次,最多m次 | iwtpap{5,7}:匹配 iwtpappppp、iwtpapppppp、iwtpappppppp |
注:如果匹配多个字符,将字符包括在 ( ) 中。
2.4 字符类
- 定义一个含有字符的集合(用 [ ] 表示),匹配里面的字符
"""
[paper]:匹配任意一个含有这几个字母的字符
[\u4e00-\u9fa5]:匹配字符串中任意一个汉字
"""
2.5 排除字符
"""
用 [] 和 ^ 表示
[^a-zA-Z]:匹配一个不是字母的字符
"""
2.6 选择字符
"""
用 | 表示
[a-z]|[0-9]:匹配从a-z小写字母或0-9的数字
"""
2.7 转义字符
"""
用 \ 表示
# 匹配四位ip地址
[1-9]{1,3}\.[1-9]{1,3}\.[1-9]{1,3}\.[1-9]{1,3}
"""
2.8 分组
"""
用 () 表示子表达式
(iwtpap){4}:iwtpap重复四次
"""
3. 使用方式
3.1 匹配字符串
import re
pattern = r'iw_\w'
string = 'IW_PP iw_pp'
match = re.match(pattern, string, re.I)
print(match)
print('起始位置:', match.start())
print('结束位置:', match.end())
print('匹配数据:', match.group())
import re
pattern = r'iw_\w'
string = 'IW_PP iw_pp'
match = re.search(pattern, string, re.I)
print(match)
print('起始位置:', match.start())
print('结束位置:', match.end())
print('匹配数据:', match.group())
import re
pattern = r'iw_\w'
string = 'IW_PP iw_pp'
match = re.findall(pattern, string, re.I)
print(match)
3.2 替换字符串
import re
pattern = r'iw_\w'
string = 'IW_PP iw_pp'
replace_string = re.sub(pattern, 'IWTPAP', string)
print(replace_string)
3.3 分割字符串
import re
pattern = r'iw_\w'
string = 'IW_PP iw_pp'
split_string = re.split(pattern, string)
print(split_string)
|