一、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. AGC014-F Strange Sorting

    题意 \(n\)-排列,反复进行:将序列中为前缀最大值的数全部移动到序列末(两种数不改变相对位置),问经过多少次后第一次全部升序排列 做法 定义:用high表示为前缀最大值,low则反之 考虑忽略\( ...

  2. JVM第二篇 类加载子系统

    1.内存结构概述 简图 ​ 详细 ​ ​ ​ 2.类加载器与类加载的过程 ​ 类加载器子系统负责从文件系统或者网络中加载Class文件,class文件在文件开头有特定的文件标识[CA FE BA BY ...

  3. 剑指offer-面试题54-二叉搜索树的第k大节点-中序遍历

    /* 题目: 求二叉搜索树的第k大节点. */ /* 思路: 中序遍历. */ #include<iostream> #include<cstring> #include< ...

  4. CF 150E Freezing with Style [长链剖分,线段树]

    \(sol:\) 给一种大常数 \(n \log^2 n\) 的做法 考虑二分,由于是中位数,我们就二分这个中位数,\(x>=mid\)则设为 \(1\),否则为 \(-1\) 所以我们只需要找 ...

  5. Centos 7 下安装 samba 服务

    yum install samba 配置文件在:/etc/samba/smb.conf [global] #添加下面这句 map to guest = Bad User #这个选项是保证匿名访问! # ...

  6. pandas模块的数据操作

    数据操作 数据操作最重要的一步也是第一步就是收集数据,而收集数据的方式有很多种,第一种就是我们已经将数据下载到了本地,在本地通过文件进行访问,第二种就是需要到网站的API处获取数据或者网页上爬取数据, ...

  7. Jenkins-Publish Over SSH插件

    插件安装 打开Jenkins的“系统管理>管理插件”,选择“可选插件”,在输入框中输入“Publish over SSH”进行搜索,如果搜索不到可以在“已安装”里确认是否已经安装过.在搜索结果中 ...

  8. VUE动画Javascript钩子不生效问题记录

    举例小球动画如下 <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...

  9. 2020 CCPC Wannafly Winter Camp Day1 Div.1&amp F

    #include<bits/stdc++.h> #define forn(i, n) for (int i = 0; i < int(n); i++) #define fore(i, ...

  10. 一道有趣的for循环题

    一道有趣的for循环题 今天在复习js基础知识时发现了一个for循环的题,第一眼看到直接懵逼了,没想到for循环竟然还可以这样玩?涨姿势了. 题目是这样的 for(i=0, j=0; i<10, ...