首页 > 其他 > 详细

Re模块的方法补充

时间:2020-05-06 20:08:14      阅读:60      评论:0      收藏:0      [点我收藏+]

 

id_str = input("输入一个身份证号:")
import re

obj = re.compile(r"^([1-9]\d{16}[0-9x]|[1-9]\d{14})$")  # 将正则表达式编译成为一个 正则表达式对象
ret = obj.match(id_str)
if ret:
    print("输入的身份证合法", ret.group())
else:
    print("输入不合法")

 

import re

ret = eva3egon4yuan4.replace(4, H)
print(ret)  # eva3egonHyuanH

ret = re.sub(r\d, H, eva3egon4yuan4)  # 将数字替换成‘H‘,全部替换
print(ret)  # evaHegonHyuanH
ret = re.sub(r\d, H, eva3egon4yuan4, 1)  # 将数字替换成‘H‘,参数1 表示只替换1个
print(ret)  # evaHegon4yuan4
ret = re.subn(r\d, H, eva3egon4yuan4)  # 将数字替换成‘H‘,返回元组(替换的结果,替换了多少次)
print(ret)  #(‘evaHegonHyuanH‘, 3)

 

import re
s = "  ABC  hello Bye  "
obj = re.compile(r\s+)  # 任意多个空格
s1 = re.sub(obj, ‘‘, s)  # 将符合规则的字符串 替换为空字符‘‘
print(s1)

 

import re

ret = re.split(r"\d+", "eva3egon4yuan")
print(ret)  # 结果 : [‘eva‘, ‘egon‘, ‘yuan‘]

ret = re.split(r"(\d+)", "eva3egon4yuan")
print(ret)  # 结果 : [‘eva‘, ‘3‘, ‘egon‘, ‘4‘, ‘yuan‘]

ret = re.split([ab], abcd)  # 先按‘a‘分割得到‘‘和‘bcd‘,再对‘‘和‘bcd‘分别按‘b‘分割
print(ret)  # [‘‘, ‘‘, ‘cd‘]

 

import re

# ()是分组     ?:是取消了分组的优先权限
ret = re.findall(rwww.(?:baidu|oldboy).com, 123www.baidu.com456www.oldboy.com789) 
print(ret) # [‘www.baidu.com‘, ‘www.oldboy.com‘]

ret1 = re.search(rwww.(?:baidu|oldboy).com, 123www.baidu.com456www.oldboy.com789)
print(ret1)
if ret1:
  
print(ret1.group()) # www.baidu.com

ret2 = re.match(rwww.(?:baidu|oldboy).com, 123www.baidu.com456www.oldboy.com789)
print(ret2) # None
if ret2:
  
print(ret2.group())

#
findall会优先把匹配结果组()里的内容返回
ret = re.findall(rwww.(baidu|oldboy).com, 123www.baidu.com456www.oldboy.com789)

print(ret) # [‘baidu‘, ‘oldboy‘]

 

 

import re

ret = re.finditer(r‘\d‘, ‘ds3sy4784a‘)   # finditer返回一个存放匹配结果的迭代器
print(ret)  # callable_iterator object  可被调用执行的迭代器对象
    

# 迭代器的三种取值方法 方法1 next() 取到末尾再取则报错
print(next(ret).group())  #查看第一个结果
print(next(ret).group())  #查看第二个结果
print(next(ret).group())  #查看第三个结果


# 迭代器的三种取值方法 方法2  for循环取值
print([i.group() for i in ret])   # 已经被取值取走三个结果  只能查看剩余结果

  3
  4
  7
  [‘8‘, ‘4‘]

import re

ret = re.finditer(r‘\d‘, ‘ds3sy4784a‘)   # finditer返回一个存放匹配结果的迭代器
print(ret)  # callable_iterator object  可被调用执行的迭代器对象

# 迭代器的三种取值方法 方法3 强制类型转换 list()
for el in list(ret):
    print(el.group())

 

Re模块的方法补充

原文:https://www.cnblogs.com/cherry2020/p/12837369.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!