正则表达式(Regular Expression)

1. 定义

  • 用一种描述性的语言给字符串定义一个 规则,符合规则的字符串,即“匹配”。

2. 结构

2.1 行定位符

  • ^表示开始:
str1 = 'Nature'
# '^Na'匹配以 Na 开头的字符
  • $表示结束:
str2 = 'Science'
# 'ce$'匹配以 ce 结束的字符

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 匹配字符串

# match()匹配字符串起始值,匹配失败将返回None值,成功将返回Match对象
import re
pattern = r'iw_\w'  # 模式字符串
string = 'IW_PP iw_pp'  # 要匹配的字符串
# match = re.match(pattern, string)  # 匹配字符串,区分字母大小写
match = re.match(pattern, string, re.I)  # 不区分字母大小写。re.A:\w不匹配汉字
print(match)
print('起始位置:', match.start())  # 匹配字符串的索引值
print('结束位置:', match.end())  # 匹配字符串的索引值
print('匹配数据:', match.group())  # 匹配的字符
# search()在整个字符串中搜索第一个匹配的值,匹配失败将返回None值,成功将返回Match对象
import re
pattern = r'iw_\w'  # 模式字符串
string = 'IW_PP iw_pp'  # 要匹配的字符串
# match = re.search(pattern, string)  # 匹配字符串,区分字母大小写
match = re.search(pattern, string, re.I)  # 不区分字母大小写
print(match)
print('起始位置:', match.start())  # 匹配字符串的索引值
print('结束位置:', match.end())  # 匹配字符串的索引值
print('匹配数据:', match.group())  # 匹配的字符
# findall()在整个字符串中搜索所有匹配的值,以列表形式返回,若匹配失败将返回空列表。
import re
pattern = r'iw_\w'  # 模式字符串
string = 'IW_PP iw_pp'  # 要匹配的字符串
# match = re.findall(pattern, string)  # 匹配字符串,区分字母大小写
match = re.findall(pattern, string, re.I)  # 不区分字母大小写
print(match)

3.2 替换字符串

# sub()
import re
pattern = r'iw_\w'  # 模式字符串
string = 'IW_PP iw_pp'  # 要匹配的字符串
replace_string = re.sub(pattern, 'IWTPAP', string)
print(replace_string)

3.3 分割字符串

# split():返回一个由分割后字符串组成的列表
import re

pattern = r'iw_\w'  # 分割符,不会出现在列表中
string = 'IW_PP iw_pp'  # 要匹配的字符串
split_string = re.split(pattern, string)
print(split_string)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值