一、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. beego框架之orm模块——mysql

    参考beego原文:http://beego.me/docs/mvc/model/orm.md#main.go beego ORM 是一个强大的 Go 语言 ORM 框架,orm模块主要是处理MVC中 ...

  2. 《C++Primer》第五版习题答案--第六章【学习笔记】

    <C++Primer>第五版习题答案--第六章[学习笔记] ps:答案是个人在学习过程中书写,可能存在错漏之处,仅作参考. 作者:cosefy Date: 2020/1/16 第六章:函数 ...

  3. #6499. 「雅礼集训 2018 Day2」颜色 [分块,倍增,bitset]

    bitset压位,因为是颜色数,直接倍增,重合部分不管,没了. // powered by c++11 // by Isaunoya #include <bits/stdc++.h> #d ...

  4. zipfile-压缩解压

    zipfile 压缩解压 import os import zipfile # 导入模块 # BASE_STATIC_CASE_RESULT:我Django static下面的某个路径 BASE = ...

  5. XMind快捷键汇总

    在 XMind: ZEN 中,快捷键是可以大大提高绘图效率的存在.掌握常用的快捷键组合,就可以在键盘上运指如飞,快速地进行思维导图的绘制.还在等什么?感兴趣的朋友,下面就和小编一起来看看吧! XMin ...

  6. jQuery中校验时间格式的正则表达式小结

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...

  7. [Python]BeautifulSoup标签的遍历

    1.下行遍历 标签树的下行遍历.content 子节点列表,将tag所有儿子节点存入列表.children 子节点的迭代类型,与.contents类似用于循环遍历儿子节点.descendants 子孙 ...

  8. vjudge 骨牌覆盖

    原题链接:https://vjudge.net/contest/331993#problem/B 在2*N的一个长方形方格中,用一个1*2的骨牌排满方格. 问有多少种不同的排列方法. 例如:2 * 3 ...

  9. Pytest学习9-常用插件

    pytest-django:为django应用程序编写测试. pytest-twisted:为twisted应用程序编写测试,启动反应堆并处理测试函数的延迟. pytest-cov:覆盖率报告,与分布 ...

  10. linux执行计划任务at命令

    https://www.jianshu.com/p/17f5aa01853f 在linux计划任务中, cron 是周期性运行某任务,假如我只想在未来的某时间点只是要求任务运行一次,这就用到at命令了 ...