python正则库_python 正则表达式第三方库 re的基本使用
re模块简介:
正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配,而re模块就是python中实现正则的模块
正则表达式简介:
非打印字符:
非打印字符也可以是正则表达式的组成部分。下表列出了表示非打印字符的转义序列:
字符描述
\cx
匹配由x指明的控制字符。
\f
匹配一个换页符。等价于 \x0c 和 \cL。
\n
匹配一个换行符。等价于 \x0a 和 \cJ。
\r
匹配一个回车符。等价于 \x0d 和 \cM
\s
匹配任何空白字符,包括空格、制表符、换页符等等。
\S
匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。
\t
匹配一个制表符。等价于 \x09 和 \cI。
\v
匹配一个垂直制表符。等价于 \x0b 和 \cK。
限定符
限定符用来指定正则表达式的一个给定组件必须要出现多少次才能满足匹配。有 * 或 + 或 ? 或 {n} 或 {n,} 或 {n,m} 共6种。
正则表达式的限定符有:
字符描述
*
匹配前面的子表达式零次或多次
+
匹配前面的子表达式一次或多次
?
匹配前面的子表达式零次或一次
{n}
n 是一个非负整数
{n,}
n 是一个非负整数
{n,m}
m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次
所谓特殊字符,就是一些有特殊含义的字符:
特别字符描述
$
匹配输入字符串的结尾位置
( )
标记一个子表达式的开始和结束位置
*
匹配前面的子表达式零次或多次
+
匹配前面的子表达式一次或多次
.
匹配除换行符 \n 之外的任何单字符
[
标记一个中括号表达式的开始
?
匹配前面的子表达式零次或一次,或指明一个非贪婪限定符
\
将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符
^
匹配输入字符串的开始位置,除非在方括号表达式中使用,当该符号在方括号表达式中使用时,表示不接受该方括号表达式中的字符集合
{
标记限定符表达式的开始。要匹配 {,请使用 \{
|
指明两项之间的一个选择。要匹配 |,请使用 \|
限定符
限定符用来指定正则表达式的一个给定组件必须要出现多少次才能满足匹配。有 * 或 + 或 ? 或 {n} 或 {n,} 或 {n,m} 共6种。
字符描述
*
匹配前面的子表达式零次或多次
+
匹配前面的子表达式一次或多次
?
匹配前面的子表达式零次或一次
{n}
n 是一个非负整数
{n,}
n 是一个非负整数
{n,m}
m 和 n 均为非负整数,其中n <= m
定位符
定位符使您能够将正则表达式固定到行首或行尾
字符描述
^
匹配输入字符串开始的位置
$
匹配输入字符串结尾的位置
\b
匹配一个单词边界,即字与空格间的位置。
\B
非单词边界匹配。
re模块的基本使用:
直接import re 即可
re.match函数
re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。
re.match(pattern,string,flags=0)
参数描述
pattern
匹配的正则表达式
string
要匹配的字符串。
flags
标志位,用于控制正则表达式的匹配方式
我们可以使用group(num) 或 groups() 匹配对象函数来获取匹配表达式。
匹配对象方法描述
group(num=0)
匹配的整个表达式的字符串,group() 可以一次输入多个组号,返回一个包含那些组所对应值的元组。
groups()
返回一个包含所有小组字符串的元组,从 1 到 所含的小组号。
#示例代码
print(re.match('\w+', 'newdream.com').group()) #起始位置匹配字符,\w匹配字母数字及下划线 + 匹配前面的子表达式一次或多次
运行结果:
newdream
re.search方法
re.search 扫描整个字符串并返回第一个成功的匹配
re.search(pattern,string,flags=0)
参数描述
pattern
匹配的正则表达式
string
要匹配的字符串。
flags
标志位,用于控制正则表达式的匹配方式
#示例代码
print(re.search('new(.+?)am', 'newdream new newd5555ream').group())#new(.+?)am:匹配new开头,am结尾。newdream newd5555ream 满足条件,只返回第一个
#运行结果
newdream
re.findall
在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表。
参数:
string : 待匹配的字符串。
pos : 可选参数,指定字符串的起始位置,默认为 0。
endpos : 可选参数,指定字符串的结束位置,默认为字符串的
#示例代码
print(re.findall('new(.+?)am', 'newdream nssewdsds newd5555ream'))#运行结果['dre', 'd5555re']
re.split
split 方法按照能够匹配的子串将字符串分割后返回列表,它的使用形式如下:
re.split(pattern,string[,maxsplit=0,flags=0])
参数描述
pattern
匹配的正则表达式
string
要匹配的字符串。
flags
标志位,用于控制正则表达式的匹配方式
#示例代码
print(re.split('\d+', 'newdream55nssewdsds66newd5555ream'))#'\d+:匹配有一个或者多个数字
#运行结果
['newdream', 'nssewdsds', 'newd', 'ream']
re.compile 函数
compile 函数用于编译正则表达式,生成一个正则表达式( Pattern )对象
re.compile(pattern[,flags])
参数:
pattern : 一个字符串形式的正则表达式
flags : 可选,表示匹配模式,比如忽略大小写,多行模式等,具体参数为:
re.I 忽略大小写
re.L 表示特殊字符集 \w, \W, \b, \B, \s, \S 依赖于当前环境
re.M 多行模式
re.S 即为 . 并且包括换行符在内的任意字符(. 不包括换行符)
re.U 表示特殊字符集 \w, \W, \b, \B, \d, \D, \s, \S 依赖于 Unicode 字符属性数据库
re.X 为了增加可读性,忽略空格和 # 后面的注释
刚刚学会的split方法可以这样写:
#示例代码
pattern = re.compile(r'\d+')print(pattern.split( 'newdream55nssewdsds66newd5555ream'))#运行结果
['newdream', 'nssewdsds', 'newd', 'ream']
同理可得,match,search,findall都可以这样写,方便以后拓展。今天的基础介绍结束,以后有更高级的用法在分享吧!
python正则库_python 正则表达式第三方库 re的基本使用相关推荐
- 电脑python安装库_Python安装第三方库的3种方法 -电脑资料
这篇文章主要介绍了Python安装第三方库的3种方法,本文讲解了通过setuptools来安装python模块.通过pip来安装python模块.直接从网上下载下可执行文件来安装三种方法,需要的朋友可 ...
- python怎么用第三方库_python中第三方库的下载方法
1.最常用:在命令行中输入 pip install "库名称" 例如 pip install gensim 查看pip的命令集: pip uninstall "库名& ...
- python网络爬虫的第三方库_Python常用第三方库_网络爬虫、数据分析与WEB开发、机器学习...
Python语言有超过12万个第三方库,覆盖信息技术几乎所有领域.下面简单介绍下网络爬虫.自动化.数据分析与可视化.WEB开发.机器学习和其他常用的一些第三方库,如果有你感兴趣的库,不妨去试试它的功能 ...
- python文档处理第三方库_Python常用第三方库大盘点
Python语言有超过12万个第三方库,覆盖信息技术几乎所有领域.下面简单介绍下网络爬虫.自动化.数据分析与可视化.WEB开发.机器学习和其他常用的一些第三方库,如果有你感兴趣的库,不妨去试试它的功能 ...
- python网络爬虫第三方库_Python常用第三方库大盘点
Python语言有超过12万个第三方库,覆盖信息技术几乎所有领域.下面简单介绍下网络爬虫.自动化.数据分析与可视化.WEB开发.机器学习和其他常用的一些第三方库,如果有你感兴趣的库,不妨去试试它的功能 ...
- python正则匹配_Python正则表达式只匹配一次
我正在尝试创建一个简单的降价乳胶转换器,只是为了学习 python和基本的正则表达式,但我不知道试图弄清楚为什么下面的代码不起作用: re.sub (r'\[\*\](.*?)\[\*\]: ?(.* ...
- python下载文件的第三方库_Python常用第三方库(转载)
wxPython 如果你之前是 windows 程序员,用 MFC 或者 WIN32API 开发界面程序,那进入 Python 国度最好的 GUI 选择应该是 wxPython.它是 wxWidget ...
- python常用类库_Python常用第三方库(转载)
wxPython 如果你之前是 windows 程序员,用 MFC 或者 WIN32API 开发界面程序,那进入 Python 国度最好的 GUI 选择应该是 wxPython.它是 wxWidget ...
- python正则匹配_python 正则表达式详解
正则表达式是一个很强大的字符串处理工具,几乎任何关于字符串的操作都可以使用正则表达式来完成,作为一个爬虫工作者,每天和字符串打交道,正则表达式更是不可或缺的技能,正则表达式的在不同的语言中使用方式可能 ...
最新文章
- 为什么你喜欢的女生不喜欢你
- python2中为什么在进行类定义时最好要加object
- React从入门到精通系列之(12)深入理解JSX
- MySQL复习资料(三)——MySQL-DML语句
- python中的自测语句是什么?
- 视频增强之“动态范围扩展”HDR技术漫谈
- 从mysql数据库读取Blob_读取数据库Blob类型的文本数据
- 【Python】base64解码报错 Incorrect padding
- 计算机网络技术线路连接,计算机网络基础知识之电路交换(CircuitSwitching)
- 51单片机c语言宏定义是什么意思,51单片机的C语言宏定义应用.doc
- 服务器光盘的正确使用方法,使用光盘刻录服务器,自动备份数据到光盘(成功案例)...
- 频数直方图的步骤_频数分布直方图的画法举例
- ATF(Arm Trusted Firmware)/TF-A Chapter 01. 介绍
- 怎么减少if()---else操作,优化代码
- matlab 缩进快捷键(快捷删掉matlab代码前空格/换行符 批量改/删/加代码前空格)
- sdut 4408 这真的是签到题
- 【正点原子FPGA连载】第二十七章DS18B20数字温度传感器实验 -摘自【正点原子】新起点之FPGA开发指南_V2.1
- 【Angular实战/网易云】用户签到(interceptor使用)
- python学习笔记 Network XHR json
- 个体工商户核名查询_秒懂!个体工商户注册无需到窗口“预先核名”,自主申报“15图搞定”!...
热门文章
- Java项目:在线聊天及聊天室系统(java+springboot+freemark+websocket+MySQL)——计算机毕业设计
- 检测字符串中是否有汉字
- 关于开发新一代大数据分布式关系数据库的倡议
- 计算机音乐谱棠梨煎雪,天谕手游棠梨煎雪乐谱代码分享
- 查询字五笔打法的window自带方法
- [CodeWars] Convert Decimal Degrees to Degrees, Minutes, Seconds
- btrfs基本介绍及应用
- Camtasia2020mac喀秋莎中文免费密钥
- 最美应用-从 Android 研发工程师的角度 の 最美时光
- 软件设计的目标和途径