博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python瓦匠 —— 正则表达式(六)
阅读量:6679 次
发布时间:2019-06-25

本文共 1057 字,大约阅读时间需要 3 分钟。

一 不区分大小写的匹配

通常,正则表达式不区分大小写。

要让正则表达式区分大小写,可以向re.comppile()传入re.IGNORECASE或re.I作为第二个参数。

例如:

>>> import re>>> case = re.compile(r'jack',re.I)#忽视大小写。>>> mo = case.search('Jack is the best choice!')>>> mo.group()'Jack'

 

二 用sub()方法替换字符串

正则表达式可以用新的文本替换旧的文本。

Regex对象的sub()方法有两个参数:一个用于取代发现的字符串,一个是需要匹配的字符串。sub()方法返回替换完成的字符串。

例如:

>>> namesRegex = re.compile(r'Agent \w+')>>> namesRegex.sub('Jack','Agent is a good boy!')#返回新的字符串。'Jack a good boy!'

 

有时候可能需要用匹配的文本本身作为匹配的字符串。在sub()中的第一个参数中,可以输入\1 , \2 , \3...。表示替换中输入分组1,2,3...的文本。

例如:

>>> namesRegex = re.compile(r'Agent (\w)\w+')>>> namesRegex.sub(r'\1**','Agent Jack is a good boy!')'J** is a good boy!'>>>

 

三 管理复杂的正则表达式

当匹配复杂的文本模式,可能需要难以理解的正则表达式。可以向re.compile()传入变量re.VERBOSE作为第二个变量。这样re,compile()会忽略正则表达式中的空白符和注释,书写更加可读的正则表达式。

nameRegex = re.compile(r''' 正则表达式 ''',re.VERBOSE)

 

四 组合使用re.IGNORECASE、re.DOTALL、re.VERBOSE

re.compile()只能接收一个第二个参数。要想要组合使用它们,可以使用管道字符(|)将变量组合起来,从而绕过这个限制。管道在这里被称为‘按位或’操作符。

nameRegex = re.compile('Jack',IGNORECASE|re.DOTALL|re.VERBOSE)

 

转载于:https://www.cnblogs.com/BeautifulSoup/p/8412879.html

你可能感兴趣的文章
网站安全防护工作
查看>>
Java gc中能聊的那些事
查看>>
如何判断一个以太坊地址是不是合约?
查看>>
逆袭!? 期待下一个“BCH”出现
查看>>
Linux 终端下全能系统监控工具 dstat
查看>>
自动化运维工具Ansible的安装(资源)
查看>>
Oracle-如何收集统计信息
查看>>
opengl es3.0学习篇五:图元装配跟光栅化
查看>>
Linux硬盘的分区挂载与光盘的挂载(二)—fdisk分区的操作步骤
查看>>
阿里巴巴上线静态开源站点搭建工具 Docsite
查看>>
如何使用Data Lake Analytics创建分区表
查看>>
您对TOP Server的德语、中文和日语语言支持了解吗?(一)
查看>>
基于 Spring Boot 和 Spring Cloud 实现微服务架构
查看>>
Qt之添加菜单项&状态栏
查看>>
负载均衡在分布式架构中是怎么玩起来的?
查看>>
Java程序员在工作的同时应该具备什么样的能力?
查看>>
Dubbo深入分析之Cluster层
查看>>
分析Padavan源代码,二
查看>>
WordPress的WPML外挂出问题恐出现安全漏洞
查看>>
Django 调试技巧
查看>>