re模块详解

正则表达式(Regular Expression,简称 regex 或 regexp)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”)。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在编程和数据处理中,正则表达式极其强大,可以用来搜索、编辑或操作文本和数据。

一、基本概念

  • 普通字符:大多数字母和数字都可以被看作是普通字符。它们匹配自己。例如,正则表达式 test 匹配字符串 "test"。
  • 元字符:在正则表达式中具有特殊含义的字符。例如,. 表示匹配除了换行符之外的任何单个字符。
  • 转义字符:如果你需要匹配一个元字符本身,你可以使用反斜杠 \ 来转义它。例如,要匹配 . 字符,你需要使用 \.

二、常用元字符

  • .:匹配除换行符以外的任意字符。
  • ^:匹配输入字符串的开始位置。
  • $:匹配输入字符串的结束位置。
  • *:匹配前面的子表达式零次或多次。
  • +:匹配前面的子表达式一次或多次。
  • ?:匹配前面的子表达式零次或一次。
  • {n}:n 是一个非负整数。匹配确定的 n 次。
  • {n,}:n 是一个非负整数。至少匹配 n 次。
  • {n,m}:m 和 n 均为非负整数,其中 n <= m。最少匹配 n 次且最多匹配 m 次。
  • [xyz]:字符集合。匹配所包含的任意一个字符。
  • [^xyz]:负值字符集合。匹配未包含的任意字符。
  • \d:匹配一个数字字符。等价于 [0-9]
  • \D:匹配一个非数字字符。等价于 [^0-9]
  • \s:匹配任何空白字符,包括空格、制表符、换页符等。
  • \S:匹配任何非空白字符。
  • \w:匹配包括下划线的任何单词字符。等价于 [A-Za-z0-9_]
  • \W:匹配任何非单词字符。等价于 [^A-Za-z0-9_]

三、常用方法

3.1 匹配

import re
#查找
result = re.search('qwe', 'qweqwqwe')
print(result,result.start(),result.end())

result1 = re.findall('qwe', 'qweqwqwe')
print(result1)

result2 = re.finditer('qwe', 'qweqwqwe')
print(result2)
for r in result2:
    print(r)
'''
结果为
<re.Match object; span=(0, 3), match='qwe'> 0 3
['qwe', 'qwe']
<callable_iterator object at 0x00000234BDD7FA90>
<re.Match object; span=(0, 3), match='qwe'>
<re.Match object; span=(5, 8), match='qwe'>
'''

3.2 替换

import re
# #替换
result3 = re.sub('qwe','*', 'qweqwqwe',count=1)
print(result3)
result4 = re.subn('qwe','*', 'qweqwqwe',count=1)
print(result4)

'''
结果为
*qwqwe
('*qwqwe', 1)
'''

3.3 分割

import re
# #分割
result5 = re.split('qwe', 'qweqwqwe')
print(result5)
result6 = re.split('qwe', 'qweqwqwe',maxsplit=1)
print(result6)
'''
结果为
['', 'qw', '']
['', 'qwqwe']
'''

  • 22
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值