Python正则表达式使用经典实例


Posted in Python onJune 21, 2016

下面列出Python正则表达式的几种匹配用法,具体内容如下所示:

此外,关于正则的一切http://deerchao.net/tutorials/regex/regex.htm

1.测试正则表达式是否匹配字符串的全部或部分

regex=ur"" #正则表达式
if re.search(regex, subject):
do_something()
else:
do_anotherthing()

2.测试正则表达式是否匹配整个字符串

regex=ur"\Z" #正则表达式末尾以\Z结束
if re.match(regex, subject):
    do_something()
else:
    do_anotherthing()

3.创建一个匹配对象,然后通过该对象获得匹配细节(Create an object with details about how the regex matches (part of) a string)

regex=ur"" #正则表达式
match = re.search(regex, subject)
if match:
    # match start: match.start()
    # match end (exclusive): atch.end()
    # matched text: match.group()
    do_something()
else:
    do_anotherthing()

4.获取正则表达式所匹配的子串(Get the part of a string matched by the regex)

regex=ur"" #正则表达式
match = re.search(regex, subject)
if match:
    result = match.group()
else:
    result = ""

5. 获取捕获组所匹配的子串(Get the part of a string matched by a capturing group)

regex=ur"" #正则表达式
match = re.search(regex, subject)
if match:
    result = match.group(1)
else:
    result = ""

6. 获取有名组所匹配的子串(Get the part of a string matched by a named group)

regex=ur"" #正则表达式
match = re.search(regex, subject)
if match:
result = match.group"groupname")
else:
result = ""

7. 将字符串中所有匹配的子串放入数组中(Get an array of all regex matches in a string)

result = re.findall(regex, subject)

8.遍历所有匹配的子串(Iterate over all matches in a string)

for match in re.finditer(r"<(.*?)\s*.*?/\1>", subject)
    # match start: match.start()
    # match end (exclusive): atch.end()
    # matched text: match.group()

9.通过正则表达式字符串创建一个正则表达式对象(Create an object to use the same regex for many operations)

reobj = re.compile(regex)

10.用法1的正则表达式对象版本(use regex object for if/else branch whether (part of) a string can be matched)

reobj = re.compile(regex)
if reobj.search(subject):
    do_something()
else:
    do_anotherthing()

11.用法2的正则表达式对象版本(use regex object for if/else branch whether a string can be matched entirely)

reobj = re.compile(r"\Z") #正则表达式末尾以\Z 结束
if reobj.match(subject):
    do_something()
else:
    do_anotherthing()

12.创建一个正则表达式对象,然后通过该对象获得匹配细节(Create an object with details about how the regex object matches (part of) a string)

reobj = re.compile(regex)
match = reobj.search(subject)
if match:
    # match start: match.start()
    # match end (exclusive): atch.end()
    # matched text: match.group()
    do_something()
else:
    do_anotherthing()

13.用正则表达式对象获取匹配子串(Use regex object to get the part of a string matched by the regex)

reobj = re.compile(regex)
match = reobj.search(subject)
if match:
    result = match.group()
else:
    result = ""

14.用正则表达式对象获取捕获组所匹配的子串(Use regex object to get the part of a string matched by a capturing group)

reobj = re.compile(regex)
match = reobj.search(subject)
if match:
    result = match.group(1)
else:
    result = ""

15.用正则表达式对象获取有名组所匹配的子串(Use regex object to get the part of a string matched by a named group)

reobj = re.compile(regex)
match = reobj.search(subject)
if match:
    result = match.group("groupname")
else:
    result = ""

16.用正则表达式对象获取所有匹配子串并放入数组(Use regex object to get an array of all regex matches in a string)

reobj = re.compile(regex)
result = reobj.findall(subject)

17.通过正则表达式对象遍历所有匹配子串(Use regex object to iterate over all matches in a string)

reobj = re.compile(regex)
for match in reobj.finditer(subject):
    # match start: match.start()
    # match end (exclusive): match.end()
    # matched text: match.group()

字符串替换

1.替换所有匹配的子串

#用newstring替换subject中所有与正则表达式regex匹配的子串
result = re.sub(regex, newstring, subject)

2.替换所有匹配的子串(使用正则表达式对象)

reobj = re.compile(regex)
result = reobj.sub(newstring, subject)

字符串拆分

1.字符串拆分

result = re.split(regex, subject)

2.字符串拆分(使用正则表示式对象)

reobj = re.compile(regex)
result = reobj.split(subject)
Python 相关文章推荐
Python中使用item()方法遍历字典的例子
Aug 26 Python
Python实现FTP上传文件或文件夹实例(递归)
Jan 16 Python
Python模块WSGI使用详解
Feb 02 Python
python3连接MySQL数据库实例详解
May 24 Python
对numpy下的轴交换transpose和swapaxes的示例解读
Jun 26 Python
Python 多线程搜索txt文件的内容,并写入搜到的内容(Lock)方法
Aug 23 Python
3种python调用其他脚本的方法
Jan 06 Python
Python turtle画图库&amp;&amp;画姓名实例
Jan 19 Python
Mac中PyCharm配置Anaconda环境的方法
Mar 04 Python
Python迭代器协议及for循环工作机制详解
Jul 14 Python
python3 googletrans超时报错问题及翻译工具优化方案 附源码
Dec 23 Python
Python对excel的基本操作方法
Feb 18 Python
常见的python正则用法实例讲解
Jun 21 #Python
实例讲解Python的函数闭包使用中应注意的问题
Jun 20 #Python
Python中的数学运算操作符使用进阶
Jun 20 #Python
Python中在for循环中嵌套使用if和else语句的技巧
Jun 20 #Python
解析Python中的生成器及其与迭代器的差异
Jun 20 #Python
Python判断列表是否已排序的各种方法及其性能分析
Jun 20 #Python
Python编程中装饰器的使用示例解析
Jun 20 #Python
You might like
PHP 动态随机生成验证码类代码
2010/04/09 PHP
微信公众号点击菜单即可打开并登录微站的实现方法
2014/11/14 PHP
PHP实现的一致性哈希算法完整实例
2015/11/14 PHP
gearman管理工具GearmanManager的安装与php使用方法示例
2020/02/27 PHP
phpstudy隐藏index.php的方法
2020/09/21 PHP
[IE&amp;FireFox兼容]JS对select操作
2007/01/07 Javascript
js 颜色选择器(兼容firefox)
2009/03/05 Javascript
javascript 支持链式调用的异步调用框架Async.Operation
2009/08/04 Javascript
控制台报错object is not a function的解决方法
2014/08/24 Javascript
使用 TypeScript 重新编写的 JavaScript 坦克大战游戏代码
2015/04/07 Javascript
关于JavaScript和jQuery的类型判断详解
2016/10/08 Javascript
js中常用的Math方法总结
2017/01/12 Javascript
微信小程序学习之数据处理详解
2017/07/05 Javascript
Vue filter格式化时间戳时间成标准日期格式的方法
2018/09/16 Javascript
npm的lock机制解析
2019/06/20 Javascript
在layui中layer弹出层点击事件无效的解决方法
2019/09/05 Javascript
python实现迭代法求方程组的根过程解析
2019/11/25 Javascript
CentOS 7下安装Python 3.5并与Python2.7兼容并存详解
2017/07/07 Python
python如何使用正则表达式的前向、后向搜索及前向搜索否定模式详解
2017/11/08 Python
Python实现邮件的批量发送的示例代码
2018/01/23 Python
python实现自动发送邮件
2018/06/20 Python
PyCharm搭建Spark开发环境实现第一个pyspark程序
2019/06/13 Python
DJI美国:消费类无人机领域的领导者
2018/04/27 全球购物
sealed修饰符是干什么的
2012/10/23 面试题
国贸专业的职业规划书
2014/03/15 职场文书
社区食品安全实施方案
2014/03/28 职场文书
出生公证书样本
2014/04/04 职场文书
物理学专业自荐信
2014/06/11 职场文书
幼儿园清明节活动总结
2014/07/04 职场文书
交通事故委托书范本(2篇)
2014/09/21 职场文书
先进单位申报材料
2014/12/25 职场文书
干部培训工作总结2015
2015/05/25 职场文书
百年校庆宣传标语口号
2015/12/26 职场文书
教师理论学习心得体会
2016/01/21 职场文书
解决numpy和torch数据类型转化的问题
2021/05/23 Python
pytorch 两个GPU同时训练的解决方案
2021/06/01 Python