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模块的方法补充的更多相关文章

  1. thinkphp访问不存在的模块或者方法跳转到404页面

    使用的thinkphp 版本是3.2.0, 在config.php中配置 404地址,即可: 'TMPL_EXCEPTION_FILE' => './Application/Home/View/ ...

  2. ThinkPHP3.2判断手机端访问并设置默认访问模块的方法

    ThinkPHP3.2判断是否为手机端访问并跳转到另一个模块的方法 目录结构 公共模块Common,Home模块,Mobile模块 配置Application/Common/Conf/config.p ...

  3. apache2服务器mod_rewrite模块 开启方法[linux, ubuntu]

    在UBUNTU系统中要启用mod_rewrite的方法有两种: 第一种: 在终端中执行 sudo a2enmod rewrite 指 令后,即启用了 Mod_rewrite 模块, apache2服务 ...

  4. python在不同层级目录import模块的方法

    使用python进行程序编写时,经常会使用第三方模块包.这种包我们可以通过python setup install 进行安装后,通过import XXX或from XXX import yyy 进行导 ...

  5. Python学习笔记4-如何快速的学会一个Python的模块、方法、关键字

    想要快速的学会一个Python的模块和方法,两个函数必须要知道,那就是dir()和help() dir():能够快速的以集合的型式列出该模块下的所有内容(类.常量.方法)例: #--encoding: ...

  6. 【转】关于python中re模块split方法的使用

    注:最近在研究文本处理,需要用到正则切割文本,所以收索到了这篇文章,很有用,谢谢原作者. 原址:http://blog.sciencenet.cn/blog-314114-775285.html 关于 ...

  7. python有三种导入模块的方法(转)

    原文:http://www.cnblogs.com/allenblogs/archive/2011/11/15/2055149.html python有三种导入模块的方法 其一, import mod ...

  8. Python中os和shutil模块实用方法集…

    Python中os和shutil模块实用方法集锦 类型:转载 时间:2014-05-13 这篇文章主要介绍了Python中os和shutil模块实用方法集锦,需要的朋友可以参考下 复制代码代码如下: ...

  9. Python中os和shutil模块实用方法集锦

    Python中os和shutil模块实用方法集锦 类型:转载 时间:2014-05-13 这篇文章主要介绍了Python中os和shutil模块实用方法集锦,需要的朋友可以参考下 复制代码代码如下: ...

随机推荐

  1. git获取特定的commit

    git reset --hard [commit_id]

  2. java的多线程是如何实现的?和操作系统有什么关系?

    本文是作者原创,版权归作者所有.若要转载,请注明出处.本文只贴我觉得比较重要的源码,其他不重要非关键的就不贴了 本文操作系统是centos7 1.查看 pthread_create 函数显示及其示例 ...

  3. 74HC595芯片的特性及使用方法和点评

    一 它能干什么?   74HC595是一个8位串行输入.平行输出的位移缓存器:平行输出为三态输出.在SCK的上升沿,单行数据由SDL输人到内部的8位位移缓存器,并由Q7‘输出,而平行输出则是在LCK的 ...

  4. .NetCore程序在Linux上面部署的实现

    我们知道.NetCore能够实现跨平台的根本就是内置Kestrel服务器实现请求处理和不同操作系统上反向代理的实现.在windows操作系统上IIS反向代理配置非常简单.但是Linux上就较为麻烦了. ...

  5. Jmeter接口测试、性能测试详细介绍

    下面主要就是讲一下Jmeter工具的用法,用法非常简单,比起loadrunner不知道简单多少,并且开源免费~~ 1.接口简介 接口定义 接口: 就是数据交互的入口和出口,是一套标准规范. 接口(硬件 ...

  6. JavaScript思维导图很全(W3C上的!!!!很重要快来看!)

  7. 常见的Web源码泄漏漏洞及其利用

    Web源码泄露的漏洞: git源码泄露 svn源码泄露 hg源码泄漏 网站备份压缩文件 WEB-INF/web.xml 泄露 DS_Store 文件泄露 SWP 文件泄露 CVS泄露 Bzr泄露 Gi ...

  8. shift后门

    shift快捷 Windows的粘滞键------C:\windows\system32\sethc.exe,它本是为不方便按组合键的人设计的 Windows系统按5下shift后,Windows就执 ...

  9. MySQL服务端恶意读取客户端文件漏洞 (DDCTF2019和国赛均涉及到这个漏洞)

    mysql协议中流程和go语言实现的恶意mysql服务器:https://blog.csdn.net/ls1120704214/article/details/88174003 poc :https: ...

  10. (转载)基于BIGINT溢出错误的SQL注入

    我对于通过MySQL错误提取数据的新技术非常感兴趣,而本文中要介绍的就是这样一种技术.当我考察MySQL的整数处理方式的时候,突然对如何使其发生溢出产生了浓厚的兴趣.下面,我们来看看MySQL是如何存 ...