当前位置: 首页 > 编程日记 > 正文

python re模块_Python re模块

正则表达式元字符说明

. 匹配除换行符以外的任意字符

^ 匹配字符串的开始

$ 匹配字符串的结束

[] 用来匹配一个指定的字符类别

? 对于前一个字符字符重复0次到1次

* 对于前一个字符重复0次到无穷次

{} 对于前一个字符重复m次

{m,n} 对前一个字符重复为m到n次

\d 匹配数字,相当于[0-9]

\D 匹配任何非数字字符,相当于[^0-9]

\s 匹配任意的空白符,相当于[ fv]

\S 匹配任何非空白字符,相当于[^ fv]

\w 匹配任何字母数字字符,相当于[a-zA-Z0-9_]

\W 匹配任何非字母数字字符,相当于[^a-zA-Z0-9_]

\b 匹配单词的开始或结束

模块函数说明即举例

re.compile 将正则表达式编译成pattern对象

compile(pattern, flags=0)

第一个参数:规则

第二个参数:标志位

re.match 只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None

match(pattern, string, flags=0)

第一个参数:规则

第二个参数:表示要匹配的字符串

第三个参数:标致位,用于控制正则表达式的匹配方式

re.search 匹配整个字符串,直到找到一个匹配

search(pattern, string, flags=0)

第一个参数:规则

第二个参数:表示要匹配的字符串

第三个参数:标致位,用于控制正则表达式的匹配方式

>>> import re

>>> pattern = re.compile(r'linuxeye')

>>> match = pattern.match('linuxeye.com')

>>> print match

>>> print match.group()

linuxeye

>>> m = pattern.match('linuxeye.com') #match匹配开头,没找到

>>> print m

None

>>> m = pattern.search('linuxeye.com') #search匹配整个字符串,直到找到一个匹配

>>> print m

>>> print m.group()

linuxeye

>>> m = re.match(r'linuxeye','linuxeye.com') #不用re.compile

>>> print m

>>> print m.group()

linuxeye

>>> m = re.match(r'linuxeye','www.linuxeye.com')

>>> print m

None

re.split 用于来分割字符串

split(pattern, string, maxsplit=0)

第一个参数:规则

第二个参数:字符串

第三个参数:最大分割字符串,默认为0,表示每个匹配项都分割

实例:分割所有的字符串

>>> import re

>>> test_str = "1 2 3 4 5"

>>> re.split(r'\s+',test_str)

['1', '2', '3', '4', '5']

>>> re.split(r'\s+',test_str,2) #分割前2个

['1', '2', '3 4 5']

>>> test_str = "1 . 2. 3 .4 . 5"

>>> re.split(r'\.',test_str)

['1 ', ' 2', ' 3 ', '4 ', ' 5']

>>> re.split(r'\.',test_str,3)

['1 ', ' 2', ' 3 ', '4 . 5']

re.findall 在目标字符串查找符合规则的字符串

findall(pattern, string, flags=0)

第一个参数:规则

第二个参数:目标字符串

但三个参数:后面还可以跟一个规则选择项

返回的结果是一个列表,建中存放的是符合规则的字符串,如果没有符合规则的字符串呗找到,就会返回一个空值

>>> import re

>>> test_mail = ' test03@gmail.net'

>>> mail_re = re.compile(r'\w+@g....\.[a-z]{3}')

>>> re.findall(mail_re,test_mail)

['test01@gmail.com', 'test02@gmail.org', 'test03@gmail.net']

re.sub 以正则表达式为基础的替换工作

sub(pattern, repl, string, count=0)

第一个参数:规则

第二个参数:替换后的字符串

第三个参数:字符串

第四个参数:替换个数。默认为0,表示每个匹配项都替换

>>> test = 'linuxeye.com linuxeye.com'

>>> test_re = re.compile(r'\.')

>>> re.sub(test_re,'--',test)

'blog--linuxeye--com linuxeye--com'

>>> re.sub(test_re,'--',test,1)

'blog--linuxeye.com linuxeye.com'

Sun Oct 20 17:46:09 CST 2013

相关文章:

国外优秀开源PHP建站程序一览

大量的PHP开源(开放源代码/Open Source)应用改变了这个世界,改变了互联网,以下我们总结从数据库到购物、博客等众多类型的开源PHP软件,供网站开发者们参考。 博客:WordPress WordPress是使用PHP开发的著名博…

《数据科学R语言实践:面向计算推理与问题求解的案例研究法》一一2.1 引言...

本节书摘来自华章计算机《数据科学R语言实践:面向计算推理与问题求解的案例研究法》一书中的第2章,第2.1节,作者:[美] 德博拉诺兰(Deborah Nolan)  邓肯坦普朗(Duncan Temple Lang)  更多章…

Matlab数据的可视化 -- 三维特殊图形

本篇微信图文主要介绍Matlab数据可视化方面的内容。plot3,bar3,barh3,scatter3

baidumap api MySQL_百度地图API开发笔记一(基础篇)

什么是百度地图API?百度地图API是一套由JavaScript语言编写的应用程序接口,它能够帮助您在网站中构建功能丰富、交互性强的地图应用。百度地图API包含了构建地图基本功能的各种接口,提供了诸如本地搜索、路线规划等数据服务。测试js API代码(…

Matlab数据的可视化 -- 三维网格图形

本篇微信图文主要介绍Matlab数据可视化方面的内容。mesh,meshc,meshz

我国网络安全人才培养缺口巨大

近日在武汉举行的国家网络安全宣传周的相关论坛上,我国网络安全人才培养缺口巨大成为与会专家热议的话题。来自中央和地方相关部门、高校研究者、互联网企业代表均认为,我国网络安全人才输出仍距国家、企业需求有较大差距。 去年6月&#xff…

如何写网站的robots.txt和meta name robots的配置

robots.txt基本介绍robots.txt是一个纯文本文件,在这个文件中网站管理者可以声明该网站中不想被robots访问的部分,或者指定搜索引擎只收录指定的内容。当一个搜索机器人(有的叫搜索蜘蛛)访问一个站点时,它会首先检查该…

mysql innodb_data_file_path_关于innodb_data_file_path设置

关于innodb_data_file_path设置启动Mysql时报错,无法正常启动,通过日志发有数据文件大小错误,日志如下截图:[ERROR] InnoDB: auto-extending data file /usr/local/mysql/data/ibdata1 is of a different size 768 pages (rounded…

BM提供支持云的量子计算平台,以加速创新

IBM研究院日前首次宣布公众可试用IBM量子处理器。从5月4日开始,IBM通过云服务,使所有有兴趣亲自实践的人们可以接触到量子处理器,帮助科学家和科研社区加速科技创新,并在该领域激发出更多的前沿应用。 这仅仅是量子计算时代的开始…

Matlab数据的可视化 -- 图形格式的设置

本篇微信图文主要介绍Matlab数据可视化方面的内容。title、x,y,zlabel、legend、title、axis、text等

(转)koogra--Excel文件读取利器

koogra是一个.net平台下开源的excel读取程序,可以在开源社区下载它。使用它我们无需office就可以读取excel文件。尽管这个程序已经停止了更新,但是它还是很好用的。下面介绍怎么使用它。下载到该程序的源代码,编译生成Net.SourceForge.Koogra…

mysql切换系统盘命令_mysql常用命令

一、连接MySQL格式: mysql -h主机地址 -u用户名 -p用户密码1、例1:连接到本机上的MYSQL。首先在打开DOS窗口,然后进入目录 mysqlbin,再键入命令mysql -uroot -p,回车后提示你输密码,如果刚安装好…

Matlab数据的可视化 -- 视角与色彩控制

本篇微信图文主要介绍Matlab数据可视化方面的内容。view,colormap

大数据、智慧城市成生态贵州新名片

2016年中国贵州内陆开放型经济试验区跨境投资贸易洽谈会将于11月10日在贵安新区正式开幕。据主办方介绍,此次洽谈会邀请了来自美国、澳大利亚等24个国家和地区的100多家境外企业,以及1000多家国内企业参加,预计签约总金额或超过1400亿元。 9日…

提升网络安全 十大策略全面巩固企业内网

几乎所有企业对于网络安全的重视程度一下子提高了,纷纷采购防火墙等设备希望堵住来自Internet的不安全因素。然而,Intranet内部的攻击和入侵却依然猖狂。事实证明,公司内部的不安全因素远比外部的危害更恐怖。 大多企业重视提高企业网的边界安…

oracle mysql事物隔离级别_Oracle数据库事物隔离级别

事务隔离级别:一个事务对数据库的修改与并行的另一个事务的隔离程度。两个并发事务同时访问数据库表相同的行时,可能存在以下三个问题:1、幻想读:事务T1读取一条指定where条件的语句,返回结果集。此时事务T2插入一行新…

Matlab数据的可视化 -- 柱形立体图

本篇微信图文主要介绍Matlab数据可视化方面的内容。cylinder

中国大陆光伏中上游触底反弹 台湾省亦酝酿涨势

太阳能需求在中国十一长假前回温,厂商受限于人力的调配,难以立即将稼动率全开,使得短期供给无法立即上升以呼应需求,因而中国大陆市场从多晶硅至电池片价格出现短暂触底反弹的情形,台湾省厂商也正酝酿涨价动能。 多晶硅…

js版的box2D

http://sourceforge.net/projects/box2d-js/files/ 受不了了 转载于:https://www.cnblogs.com/vilyLei/articles/1522800.html

mysql 安装 se_mysql的安装过程

(1)下载mysql。(2)解压文件到特定位置。我解压到:/home/jim/Software(3)创建Mysql组和用户。mysql中的一个用户名就是链接mysql服务器时指定的用户名,该名字不必与linux登陆名联系起来,但是必须是linux系统下建立的用户。命令为:g…

创新类编辑推荐:Sequence iBPMS平台

创新类编辑推荐是Sequence,一个“iBPMS”工作流管理平台。本文介绍了该产品以及用户是如何成功使用该平台的。 SearchSOA的编辑会定期为创新性和市场影响而表彰应用集成和现代化技术。PNMsoft的Sequence iBPMS是2016年4月份的编辑推荐。 产品名称: Seque…

Matlab数据的可视化 -- 简易表面图

本篇微信图文主要介绍Matlab数据可视化方面的内容。ezsurf

PL/SQL学习笔记-常量变量及数据类型初步

一:常量和变量 开始之前,还是照例做个经典的例子,如下: declare mydate varchar2(16) : hellow world; begindbms_output.put_line(mydate); end; declare是声明部分我在这个部分声明了varchar2类型的变量,名字叫myda…

python邮件发送哪个好_最全总结!聊聊 Python 发送邮件的几种方式

1. 前言邮件,作为最正式规范的沟通方式,在日常办公过程中经常被用到我们都知道 Python内置了对 SMTP 的支持,可以发送纯文本、富文本、HTML 等格式的邮件本文将聊聊利用 Python 发送邮件的 3 种方式2. 准备以 126 邮箱为例,在编码…

数据库与操作系统时区更改

ORACLE 11G 新部署的环境,刚使用GOLDENGATE 进行完数据迁移和同步,发现ORACLE 自动收集的任务时间  并不是设定的晚上22点启动。检查AIX 时区发现设置的CDT ,数据库的TIMEZONE 是CST6CDT,与系统管理  员沟通,他答复…

Matlab数据的可视化 -- 三维表面图

本篇微信图文主要介绍Matlab数据可视化方面的内容。surf

为自定义控件添加页面响应事件

ascx:<asp:Button ID"Button1" runat"server" Text"Button" OnClick"Button1_Click" />ascx.cs:(1)public delegate void PostBackDelegate(); //定义委托类型public event PostBackDelegate PostBackEvent; //定义委托对象pr…

trogan连接不上_解决连接不上网(Connection not connected).doc

解决连接不上网(Connection not connected).doc解决连接不上网(Connection not connected)The computer doesnt connect to broadband and has a large collection of code problemsSome broadband connection error handlingBroadband connection error 691 (denied access du…

ASP.NET 3.5揭秘-读书笔记1

ASP.NET和.NET FrameworkASP.NET是微软.NET Framework的一部分。.NET Framework由两部分组成&#xff1a;框架类库(Framework Class Library)和公共语言运行库。框架类库&#xff1a;实现了各种各样功能的类的集合,使编程更简单。命名空间程序集(Assembly): 类在硬盘上的表现—…

【C#串口编程计划】串口编程简介

介绍C#串口编程的基本知识。