Python 正则表达式

re 模块使 Python 语言拥有全部的正则表达式功能,re模块常用方法:

re.match函数

re.match从字符串的起始位置匹配,如果起始位置匹配不成功,则match()就返回none。,如果匹配成功,则可通过group(num) 或 groups()获取匹配结果。

函数语法

re.match(pattern,string,flags=0)

函数参数

pattern : 正则表达式

string : 字符串。

flags : 标志位,用于控制正则表达式的匹配方式,如:是否区分大小写等等

flags模式

re.I 使匹配对大小写不敏感

re.L 做本地化识别(locale-aware)匹配

re.M 多行匹配,影响 ^ 和 $re.S使 . 匹配包括换行在内的所有字符

re.U 根据Unicode字符集解析字符。这个标志影响 w, W, , B.

re.X 该标志通过给予你更灵活的格式以便你将正则表达式写得更易于理解。

import re

re_str='The re module gives the Python language full regular expression capabilities.'

match_str=re.match('The r(.+?)', re_str)

# group() 匹配的整个表达式的字符串,group() 可以一次输入多个组号,在这种情况下它将返回一个包含那些组所对应值的元组。

print(match_str.group())

输出 The re

print(match_str.group(1))

输出 e

# 返回一个包含所有小组字符串的元组,从 1 到 所含的小组号。

print(match_str.groups())

输出 ('e',)

# 其实位置匹配不成功则返回None

match_str=re.match('module',re_str)

print(match_str)

输出 None

# 设置为对大小写不敏感,re.I

match_str=re.match('the r(.+?)',re_str,re.I)

print(match_str.group())

输出 The re

re.search方法

re.search 对整个字符串进行匹配并返回第一个成功的匹配字符串,否则返回None。              我刚整理了一套2018最新的0基础入门和进阶教程,无私分享,加Python学习q u n :227-435-450即可获取,内附:开发工具和安装包,以及系统学习路线图

函数语法

re.search(pattern,string,flags=0)

函数参数

pattern : 正则表达式

string : 字符串

flags : 标志位

search_str=re.search('r(.+?)', re_str)

print(search_str.group())

输出 re

re.match与re.search的区别

re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,而re.search匹配整个字符串,直到找到一个匹配,并返回第一个被匹配到的字符串。

findall

在字符串中匹配所有满足正则表达式的字符串,并返回一个列表,如果没有找到匹配的,则返回空列表。

函数语法

findall(string[,pos[,endpos]])

函数参数

string : 待匹配的字符串。

pos : 可选参数,指定字符串的起始位置,默认为 0。

endpos : 可选参数,指定字符串的结束位置,默认为字符串的长度。

findall_str=re.findall('i.+?',re_str)

print(findall_str)

# 上面还是使用re.findall的方式,这里推荐使用re.compile生成正则表达式对象,然后按照上面参数说明使用该函数,如下。

pattern=re.compile('i.+?')

pattern.findall(re_str)

输出 ['iv', 'io', 'il', 'it', 'ie']

re.split

split 方法按照能够匹配的子串将字符串分割后返回列表

函数语法

re.split(pattern,string[,maxsplit=0,flags=0])

函数参数

pattern : 正则表达式

string : 字符串

maxsplit : 分隔次数,maxsplit=1 分隔一次,默认为 0,不限制次数。

flags : 标志位

split_str=re.split('i.+?',re_str)

print(split_str)

输出 ['The re module g', 'es the Python language full regular express', 'n capab', '', '', 's.']

附 呕心沥血整理的正则表达式的语法规则


正则表达式的语法规则


正则表达式的语法规则

Python 正则表达式——re模块介绍的更多相关文章

  1. Python面试题之Python正则表达式re模块

    一.Python正则表达式re模块简介 正则表达式,是一门相对通用的语言.简单说就是:用一系列的规则语法,去匹配,查找,替换等操作字符串,以达到对应的目的:此套规则,就是所谓的正则表达式.各个语言都有 ...

  2. python正则表达式Re模块备忘录

    title: python正则表达式Re模块备忘录 date: 2019/1/31 18:17:08 toc: true --- python正则表达式Re模块备忘录 备忘录 python中的数量词为 ...

  3. python正则表达式re模块详细介绍--转载

    本模块提供了和Perl里的正则表达式类似的功能,不关是正则表达式本身还是被搜索的字符串,都可以是Unicode字符,这点不用担心,python会处理地和Ascii字符一样漂亮. 正则表达式使用反斜杆( ...

  4. python正则表达式——re模块

    http://blog.csdn.net/zm2714/article/details/8016323 re模块 开始使用re Python通过re模块提供对正则表达式的支持.使用re的一般步骤是先将 ...

  5. python正则表达式-re模块的爱恨情仇

    利用python的re模块,使用正则表达式对字符串进行处理 # 编辑者:闫龙 import re restr = "abccgccc123def456ghi789jgkl186000&quo ...

  6. python正则表达式-re模块

    目录: 一.正则函数 二.re模块调用 三.贪婪模式 四.分组 五.正则表达式修饰符 六.正则表达式模式 七.常见的正则表达式 导读: 想要使用python的正则表达式功能就需要调用re模块,re模块 ...

  7. Python正则表达式re模块和os模块实现文件搜索模式匹配

    ☞ ░ 前往老猿Python博文目录 ░ 因测试需要,需要提供一个可以指定目录搜索符合条件的文件名函数,搜索时可以通过*(星号)匹配0-n个字符,?(问号)匹配任意1个字符,可以指定多个文件类型,每个 ...

  8. python -- 正则表达式&re模块(转载)

    1. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十 ...

  9. python 正则表达式re模块

    #####################总结##############    优点:  灵活, 功能性强, 逻辑性强.               缺点:  上手难,旦上手, 会爱上这个东西    ...

随机推荐

  1. html5 css写出一个实心三角形和空心三角行

    原理:css中的border属性的特殊性. 实心三角形: html5: <div id="mydiv"></div> css: #mydiv{ height ...

  2. vim grep sed awk对大小写不敏感

    vim grep sed awk对大小写不敏感 环境 [root@osker ~]# cat /etc/redhat-release CentOS Linux release (Core) [root ...

  3. PTA数据结构与算法题目集(中文) 7-42整型关键字的散列映射 (25 分)

    PTA数据结构与算法题目集(中文)  7-42整型关键字的散列映射 (25 分) 7-42 整型关键字的散列映射 (25 分)   给定一系列整型关键字和素数P,用除留余数法定义的散列函数将关键字映射 ...

  4. CentOS虚拟机开机显示多内核版本

    在CentOS进行系统更新后,会保留旧版本的内核.所以,在每次启动时,会有多个内核选项,可以手动删除不用的旧版本内核.   1.查看当前系统内核版本 #uname -a   2.查看系统中存在的全部内 ...

  5. For,while,case,shell循环结构

                                                                For,while,case,shell循环结构 案例1:使用for循环结构 案 ...

  6. .NET MVC中登录过滤器拦截的两种方法

    今天给大家介绍两种ASP中过滤器拦截的两种方法. 一种是EF 的HtppModule,另一种则是灵活很多针对MVC的特性类 Attribute 具体什么是特性类可以参考着篇文章:https://www ...

  7. Linux如何配制Tcl编程环境

    首先,打开终端. 接着在终端输入以下命令: sudo apt-get install tcl

  8. 2015蓝桥杯分机号(C++C组)

    标题:分机号X老板脾气古怪,他们公司的电话分机号都是3位数,老板规定,所有号码必须是降序排列,且不能有重复的数位.比如:751,520,321 都满足要求,而,766,918,201 就不符合要求.现 ...

  9. "字母全变小写"组件:<lowercase> —— 快应用组件库H-UI

     <import name="lowercase" src="../Common/ui/h-ui/text/c_text_lowercase">& ...

  10. 更快地访问stackoverflow

    使用火狐浏览器,安装扩展组件 Decentraleyes, 完成 原理:由于爆栈本身并没有被墙, 但使用了google的api,而google的api是被墙的. 该组件替换了国内不能访问的api,所以 ...