一、re模块

1、模块功能

通过re模块的接口接入正则表达式语言,主要用于匹配字符串。

2、正则表达式元字符以及意义

.  代表任意一个字符(除了换行符\n)

^  以什么开头

$  以什么结尾

*  重复匹配*前面的字符出现0到多次 【0,正无穷】

+  重复匹配+前面的字符1到多次【1,正无穷】

?  重复匹配?前面的字符0或1次【0,1】

{数字}  代表前面的匹配次数,如'b{3}'

{数字n,数字m}    代表前面的匹配次数n次到m次

"|"  或

'(abc){2}'  将abc括成一个整体,分组匹配

[]  代表字符集中的字符,或的关系,如'[a-z]',还有取消元字符意义的特殊功能,

  如'[^123]',^放在[]里的最前面,代表取反。

  如[1-5],-放在[]里面,代表一个范围

\与普通字符,代表一定意义如[\d],具体代表意义如下;(但\与特殊自字符,取消特殊性,如[\^])

  \d   匹配所有的数字,相当于[0-9]
  \D   匹配非数字字符,相当于[^0-9]
  \w   匹配数字字母下划线,相当于[0-9a-zA-Z_]
  \W   匹配非数字字母下划线,相当于[^0-9a-zA-Z_]
  \s   匹配任意空白符(空格,换行,回车,换页制表符)相当于[ \f\n\r\t]
  \S   匹配任意非空白符,相当于[^ \f\n\r\t]
  \A   匹配字符串开始,和^区别:\A只匹配行首,在re.M下也不匹配他行行首
  \Z   匹配字符串结束,和$区别:\Z只匹配结束,在re.M下也不匹配他行结束
  \b   匹配单词的边界,空格之间
  \B   匹配非单词的边界,空格之间

()  做分组,弄成整体字符组进行匹配,如'(bs)'

  添加组名分组:根据组名查出

  

查找网址的例子:

import re
print(re.findall('www.(\w+).com',"www.baidu.com")) #['baidu'],得出中间结果
print(re.findall('www.(?:\w+).com',"www.baidu.com")) #['www.baidu.com'],得出所有结果

匹配身份证例子:

3、模块的方法

findall():所有结果都返回到一个列表里

search():返回匹配到的第一个对象(object),可以调用group()方法返回结果(常用)

    print(re.search('www.(\w+).com',"www.baidu.com").group())

match():只在字符串开始匹配,只匹配开头符不符合。也是返回一个对象,也用group()返回结果。

split() :分割字符串

    print(re.split('k+','sdfkwerkryy')) #['sdf', 'wer', 'ryy']

sub("替换前","替换后","替换的字符串",替换多少个(不写默认全部替换))

    print(re.sub('chen','peng','chenxiaozanchen',1)) #pengxiaozanchen

compile():提高一点点效率,编译规则,再调用

    

finditer() : 得到的结果不是放到list,而是迭代器

    

.

re正则匹配模块_python的更多相关文章

  1. python - re正则匹配模块

    re模块 re 模块使 Python 语言拥有全部的正则表达式功能. compile 函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象.该对象拥有一系列方法用于正则表达式匹配和替换. re ...

  2. 第三百二十五节,web爬虫,scrapy模块标签选择器下载图片,以及正则匹配标签

    第三百二十五节,web爬虫,scrapy模块标签选择器下载图片,以及正则匹配标签 标签选择器对象 HtmlXPathSelector()创建标签选择器对象,参数接收response回调的html对象需 ...

  3. 四 web爬虫,scrapy模块标签选择器下载图片,以及正则匹配标签

    标签选择器对象 HtmlXPathSelector()创建标签选择器对象,参数接收response回调的html对象需要导入模块:from scrapy.selector import HtmlXPa ...

  4. 常用的re模块的正则匹配的表达式

    07.01自我总结 常用的re模块的正则匹配的表达式 一.校验数字的表达式 1.数字 ^[0-9]\*$ 2.n位的数字 ^\d{n}$ 3.至少n位的数字 ^\d{n,}$ 4.m-n位的数字 ^\ ...

  5. python中正则匹配之re模块

    Python中正则表达式 re:re是提供正则表达式匹配操作的模块 一.什么是正则表达式 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某个模式匹配,Python 自1.5版本起 ...

  6. Aho-Corasick算法、多模正则匹配、Snort入门学习

    希望解决的问题 . 在一些高流量.高IO的WAF中,是如何对规则库(POST.GET)中的字符串进行多正则匹配的,是单条轮询执行,还是多模式并发执行 . Snort是怎么组织.匹配高达上千条的正则规则 ...

  7. python_way day18 html-day4, Django路由,(正则匹配页码,包含自开发分页功能), 模板, Model(jDango-ORM) : SQLite,数据库时间字段插入的方法

    python_way day18 html-day4 1.Django-路由系统   - 自开发分页功能 2.模板语言:之母板的使用 3.SQLite:model(jDango-ORM) 数据库时间字 ...

  8. Python正则匹配字母大小写不敏感在读xml中的应用

    需要解决的问题:要匹配字符串,字符串中字母的大小写不确定,如何匹配? 问题出现之前是使用字符串比较的方式,比如要匹配'abc',则用语句: if s == 'abc':#s为需要匹配的字符串 prin ...

  9. 正则 re模块

    Python 正则表达式 re 模块 简介 正则表达式(regular expression)是可以匹配文本片段的模式.最简单的正则表达式就是普通字符串,可以匹配其自身.比如,正则表达式 ‘hello ...

随机推荐

  1. 重启防火墙(iptables)命令#service iptable restart失效

    Redirecting to /bin/systemctl restart iptables.ser linux下执行防火墙相关指令报错: Redirecting to /bin/systemctl ...

  2. vue_day01

    Vue_day01 1. 认识vue 1.1 什么是vue (1)Vue是构建界面的渐进式的js框架 (2)只关注视图层, 采用自底向上增量开发的设计. (3)Vue 的目标是通过尽可能简单的 API ...

  3. win10系统vscode c/c++配置环境

    使用vscode可以完成轻量级的编译器环境搭建,使用vscode 搭建完整的c++开发环境见下网站: https://www.bilibili.com/video/av18436497/?spm_id ...

  4. maven的核心概念——生命周期

    第十一章生命周期 11.1 什么是Maven的生命周期 ●Maven生命周期定义了各个构建环节的执行顺序,有了这个清单,Maven就可以自动化的执行构建命令了. ●Maven有三套相互独立的生命周期, ...

  5. Postman测试上传MultipartFile文件

    单个文件上传 后台代码 //导入excel @PostMapping("/import") public Result excelImport( @RequestParam(&qu ...

  6. WIN10与ubuntu双系统安装教程

    按照网上博客的安装教程安装的Win10+Ubuntu16.04双系统安装了好几遍都不成功?启动Ubuntu左上一直有个光标在闪?如果你的电脑也是双硬盘(装Windows系统的固态硬盘+机械硬盘),在安 ...

  7. BFS和队列

    深度优先搜索(DFS)和广度优先搜索(BFS)是基本的暴力技术,常用于解决图.树的遍历问题. 首先考虑算法思路.以老鼠走迷宫为例: (1):一只老鼠走迷宫.它在每个路口都选择先走右边,直到碰壁无法继续 ...

  8. SpringBoot整合持久层技术--(二)MyBatis

    简介: 原名iBatis,SpringBoot中使用MyBatis: pom.xml <dependency> <groupId>org.springframework.boo ...

  9. C语言->关于文件数据的录入和输出调用的函数总结

    数据输入输出对象之间的关系图: 函数使用说明: 1.一个字符的输入\输出,对象是键盘(缓存和屏幕) 1.1.getchar(a),putchar(a); 1.2.scanf(“%d”,&i), ...

  10. VSCode部署JAVA项目出现The type java.lang.Object cannot be resolved

    如题,出现的原因是这样的:我将mac系统上的eclipse项目复制到了ubuntu环境下,通过vscode的远程功能连接ubuntu. 然后项目上就出现了各种报错,显示The type java.la ...