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. 面试官再问你 HashMap 底层原理,就把这篇文章甩给他看

    前言 HashMap 源码和底层原理在现在面试中是必问的.因此,我们非常有必要搞清楚它的底层实现和思想,才能在面试中对答如流,跟面试官大战三百回合.文章较长,介绍了很多原理性的问题,希望对你有所帮助~ ...

  2. 关于微信小程序的一点经验

    2018年的11月份,自己做微信小程序相关的项目已经有四个月,这四个月自己走过很多弯路,也学到了不少经验,下面就一一总结: 一,微信小程序的radio组件是可以改变按钮样式的(比如大小,颜色等等) 改 ...

  3. Vue的基本指令的使用1

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. 28.1 api-- Object(toString equals)

    /* * String toString() : 返回该对象的字符串表示 * return getClass().getName() + "@" + Integer.toHexSt ...

  5. Js异步机制的实现

    Js异步机制 JavaScript是一门单线程语言,所谓单线程,就是指一次只能完成一件任务,如果有多个任务,就必须排队,前面一个任务完成,再执行后面一个任务,以此类推.这种模式的好处是实现起来比较简单 ...

  6. sparkRdd driver和excuter

    //1 从内存中创建makeRdd,底层实现就是parallelize val rdd=sc.makeRDD(Array(1,2,"df",55)) //2 从中创建paralle ...

  7. jetCache 基本使用

    1.pom引用 <!--jetcache缓存 lettuce--> <dependency> <groupId>com.alicp.jetcache</gro ...

  8. Spring+Hibernate整合配置 --- 比较完整的spring、hibernate 配置

    Spring+Hibernate整合配置 分类: J2EE2010-11-25 17:21 16667人阅读 评论(1) 收藏 举报 springhibernateclassactionservlet ...

  9. iOS技能 - 最新美团、百度、腾讯、头条、阿里 面试题目记录

    关于面试题,可能没那么多时间来总结答案,有什么需要讨论的地方欢迎大家指教.主要记录一下准备过程,和面试的一些总结,希望能帮助到正在面试或者将要面试的同学吧. 美团 一面 1.简历上写的项目问了一遍,然 ...

  10. [总结]RMQ问题&ST算法

    目录 一.ST算法 二.ST算法の具体实现 1. 初始化 2. 求出ST表 3. 询问 三.例题 例1:P3865 [模板]ST表 例2:P2880 [USACO07JAN]平衡的阵容Balanced ...