Re模块的方法补充
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('', 'H')
print(ret) # eva3egonHyuanH
ret = re.sub(r'\d', 'H', 'eva3egon4yuan4') # 将数字替换成'H',全部替换
print(ret) # evaHegonHyuanH
ret = re.sub(r'\d', 'H', 'eva3egon4yuan4', ) # 将数字替换成'H',参数1 表示只替换1个
print(ret) # evaHegon4yuan4
ret = re.subn(r'\d', 'H', 'eva3egon4yuan4') # 将数字替换成'H',返回元组(替换的结果,替换了多少次)
print(ret) #('evaHegonHyuanH', 3)
ret = re.findall(r"[\d|\.]+", "2020-10-10 11:12:40.237")
print(ret) # ['2020', '10', '10', '11', '12', '40.237'] ret = re.sub(r'\.\d+', '', "40.23723")
print(ret) #
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(r'www.(?:baidu|oldboy).com', '123www.baidu.com456www.oldboy.com789')
print(ret) # ['www.baidu.com', 'www.oldboy.com'] ret1 = re.search(r'www.(?:baidu|oldboy).com', '123www.baidu.com456www.oldboy.com789')
print(ret1)
if ret1:
print(ret1.group()) # www.baidu.com ret2 = re.match(r'www.(?:baidu|oldboy).com', '123www.baidu.com456www.oldboy.com789')
print(ret2) # None
if ret2:
print(ret2.group()) # findall会优先把匹配结果组()里的内容返回
ret = re.findall(r'www.(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模块的方法补充的更多相关文章
- thinkphp访问不存在的模块或者方法跳转到404页面
使用的thinkphp 版本是3.2.0, 在config.php中配置 404地址,即可: 'TMPL_EXCEPTION_FILE' => './Application/Home/View/ ...
- ThinkPHP3.2判断手机端访问并设置默认访问模块的方法
ThinkPHP3.2判断是否为手机端访问并跳转到另一个模块的方法 目录结构 公共模块Common,Home模块,Mobile模块 配置Application/Common/Conf/config.p ...
- apache2服务器mod_rewrite模块 开启方法[linux, ubuntu]
在UBUNTU系统中要启用mod_rewrite的方法有两种: 第一种: 在终端中执行 sudo a2enmod rewrite 指 令后,即启用了 Mod_rewrite 模块, apache2服务 ...
- python在不同层级目录import模块的方法
使用python进行程序编写时,经常会使用第三方模块包.这种包我们可以通过python setup install 进行安装后,通过import XXX或from XXX import yyy 进行导 ...
- Python学习笔记4-如何快速的学会一个Python的模块、方法、关键字
想要快速的学会一个Python的模块和方法,两个函数必须要知道,那就是dir()和help() dir():能够快速的以集合的型式列出该模块下的所有内容(类.常量.方法)例: #--encoding: ...
- 【转】关于python中re模块split方法的使用
注:最近在研究文本处理,需要用到正则切割文本,所以收索到了这篇文章,很有用,谢谢原作者. 原址:http://blog.sciencenet.cn/blog-314114-775285.html 关于 ...
- python有三种导入模块的方法(转)
原文:http://www.cnblogs.com/allenblogs/archive/2011/11/15/2055149.html python有三种导入模块的方法 其一, import mod ...
- Python中os和shutil模块实用方法集…
Python中os和shutil模块实用方法集锦 类型:转载 时间:2014-05-13 这篇文章主要介绍了Python中os和shutil模块实用方法集锦,需要的朋友可以参考下 复制代码代码如下: ...
- Python中os和shutil模块实用方法集锦
Python中os和shutil模块实用方法集锦 类型:转载 时间:2014-05-13 这篇文章主要介绍了Python中os和shutil模块实用方法集锦,需要的朋友可以参考下 复制代码代码如下: ...
随机推荐
- RESTful API设计的点
RESTful API 前言 一直在使用RESTful API,但是好像概念还是很模糊的,总结下使用到的点 设计的规范 协议 API与用户的通信协议,总是使用HTTPs协议. 域名 应该尽量将API部 ...
- 动态网页D-html
BOM(Browser Object Model)浏览器对象模型 window对象(window – 代表浏览器中打开的一个窗口) 1.alert()方法 – 定义一个消息对话框 window.ale ...
- Mac Jenkins+fastlane 简单几步实现iOS自动化打包发布 + jenkins节点设置
最近在使用jenkins 实现ios自动化打包发布蒲公英过程实践遇到了一些坑,特意记录下来方便有需要的人. 进入正题: 一.安装Jenkins 1.Mac上安装Jenkins 遇到到坑 因为 Jenk ...
- Linux U盘启动盘制作工具
近期由于自己使用的ubuntu系统一直出问题,想做一下启动盘帮助恢复系统和故障检测,以前一直是用ultraiso来进行写盘的,但是发现制作了几次后,失败的机率很高,主要有以下几种情况: 1.引导有问题 ...
- SpringBoot事件监听机制源码分析(上) SpringBoot源码(九)
SpringBoot中文注释项目Github地址: https://github.com/yuanmabiji/spring-boot-2.1.0.RELEASE 本篇接 SpringApplicat ...
- stand up meeting 11/25/2015 暨sprint2总结
今天在课堂上进行了小组项目的阶段性总结,这两天小组内也是频繁的开会,具体细节我们已经反复核查,具体不表~ sprint2个人工作总结: 冯晓云:完成了必应词典在线查词api的调用和网络状况的检测:完成 ...
- E - Dividing Chocolate ATcoder
题目大意:切割图形,给你一个非0即1的矩阵,将它切割成多个长方形,使每个小长方形中1的个数不得多于k个,切割的规则,要么切一整行,要么是一整列. 题解: 二进制枚举. 注意行数最大才是10.用二进制枚 ...
- redis和memcache列出所有key
//redis $redis = new Redis(); $redis->connect("host", "port"); $redis->sel ...
- Everything信息泄露
Everything漏洞描述 [Everything]一款搜索文件非常快的工具,其速度之快令人震惊!它还有一个可以通过HTTP 或 FTP 分享搜索结果 的功能.它可以让用户在本地或局域网上的其他电脑 ...
- 常见分布式全局唯一ID生成策略
全局唯一的 ID 几乎是所有系统都会遇到的刚需.这个 id 在搜索, 存储数据, 加快检索速度 等等很多方面都有着重要的意义.工业上有多种策略来获取这个全局唯一的id,针对常见的几种场景,我在这里进行 ...