正则模块

海燕

字符组

字符

量词

 .^$

 *+?{}

 贪婪匹配

 字符集

 分组()与或|[^]:

(1)^[1-9]d{13,16}[0-9x]$     #^以数字0-9开始,
                                d{13,16}重复13次到16次
                                $结束标志
上面的表达式可以匹配一个正确的身份证号码
 
(2)^[1-9]d{14}(d{2}[0-9x])?$     
#?重复0次或者1次,当是0次的时候是15位,是1的时候是18位
3)^([1-9]d{16}[0-9x]|[1-9]d{14})$
#表示先匹配[1-9]d{16}[0-9x]如果没有匹配上就匹配[1-9]d{14}  

re模块相关方法

# 1.re模块下的常用方法
# 1.findall方法
import re
ret = re.findall('a','eva ang  egons')
# #返回所有满足匹配条件的结果,放在列表里
print(ret)

# 2.search方法
# 函数会在字符串中查找模式匹配,只会找到第一个匹配然后返回
# 一个包含匹配信息的对象,该对象通过调用group()方法得到匹配的
# 字符串,如果字符串没有匹配,则报错
ret = re.search('s','eva ang  egons')#找第一个
print(ret.group())

# 3.match方法
print(re.match('a','abc').group())
#同search,只从字符串开始匹配,并且guoup才能找到

# 4.split方法
print(re.split('[ab]','abcd'))
#先按'a'分割得到''和'bcd',在对''和'bcd'分别按'b'分割


# 5.sub方法
print(re.sub('d','H','eva3sdf4ahi4asd45',1))
# 将数字替换成'H',参数1表示只替换一个


# 6.subn方法
print(re.subn('d','H','eva3sdf4ahi4asd45'))
#将数字替换成’H‘,返回元组(替换的结果,替换了多少次)
 

# 7.compile方法
obj = re.compile('d{3}')#将正则表达式编译成一个正则表达式对象,规则要匹配的是三个数字
print(obj)
ret
= obj.search('abc12345eeeee')#正则表达式对象调用search,参数为待匹配的字符串 print(ret.group()) #.group一下就显示出结果了 # 8.finditer方法 ret = re.finditer('d','dsf546sfsc')#finditer返回的是一个存放匹配结果的迭代器 # print(ret)#<callable_iterator object at 0x00000000021E9E80> print(next(ret).group())#查看第一个结果 print(next(ret).group())#查看第二个结果 print([i.group() for i in ret] )#查看剩余的左右结果
原文地址:https://www.cnblogs.com/zh-xiaoyuan/p/13322476.html