Python基础篇之正则表达式

Y2J
发布: 2017-05-06 14:38:04
原创
1414人浏览过

正则表达式并不是python的一部分。正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十分强大。下面这篇文章主要介绍了关于python正则表达式基础的相关资料,需要的朋友可以参考下。

前言

之前有人提了一个需求,我一看此需求用正则表达式最合适不过。考虑到之前每次使用正则表达式,都是临时抱佛脚,于是这次我就一边完成任务一边系统的学习了一遍正则表达式。主要参考PyCon2016上的一个视频Regular Expressions。

我将分几篇文章对正则表达式进行总结。

以下是第一部分,基础: 

立即学习Python免费学习笔记(深入)”;

基础部分

这里总结了正则表达式最基础的用法,其中大部分内容对我(以及大部分程序员)来说都是平时经常用到的,所以我就一笔带过了,只对其中的几处用例子说明。 

     .           除了换行之外的其他所有字符

     ^           行首

     $           行尾

     [abcd]      abcd其中的一个字符

     [^abcd]     除了abcd之外的任意字符

     [a-d]       相当于[abcd]

     [a-dz]      相当于[abcdz]

               单词边界

     w          字母数字或下划线 相当于[a-zA-Z0-9_]

     W          与w相反

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

     D          与d相反

     s          空白字符,相当于[ ]

     S          与s相反

达芬奇
达芬奇

达芬奇——你的AI创作大师

达芬奇 50
查看详情 达芬奇

     {5}         在此之前的正则表达式部分(下同)准确的出现5次

     {2,5}       ~出现2到5次

     {2,}        ~出现2次或多次

     {,5}        ~出现0到5次

     *          ~出现0次或多次

     ?          ~出现0次或1次

     +           ~出现1次或多次

     ABC|DEF     匹配ABC或者DEF

               转义字符,如表示匹配*,$表示匹配$* 

、 用以下几个例子简单说明一下: 

     :

>>> re.search(r'hello', 'hello')
<_sre.SRE_Match object; span=(0, 5), match='hello'>
>>> re.search(r'hello', 'hello world')
<_sre.SRE_Match object; span=(0, 5), match='hello'>
>>> re.search(r'hello', 'hello,world')
<_sre.SRE_Match object; span=(0, 5), match='hello'>
>>> re.search(r'hello', 'hello_world') 
>>>
登录后复制

其实这里,大体上和W一支,但是可以匹配行首行尾等非显示类的字符,而W不可以。 

     :

>>> re.search(r'$100', '$100')
<_sre.SRE_Match object; span=(0, 4), match='$100'>
>>> re.search(r'$100', '$100') 
>>>
登录后复制

想要匹配那些在正则表达式中有特殊含义的字符,如$、^、*等,就需要用进行转义。 

raw string:

另外,前面例子中,模式字符串(pattern)前面都加了一个r,这个r的意思是raw string,后面所接的字符串,Pyhton解释器无需对其进行转义。因为,在Python字符串中和正则表达式中都有特殊含义,所以如果不是raw string,那么要表达一个字符,就需要四个了(在Python解释器中先转义一次,2个表示1个,剩下2个,在正则表达式中又转义一次,最终剩下一个)。例如:

>>> re.search(r'hello', 'hello')
<_sre.SRE_Match object; span=(0, 5), match='hello'>
>>> re.search('hello', 'hello') 
>>> re.search('\bhello\b', 'hello')
<_sre.SRE_Match object; span=(0, 5), match='hello'>

>>> re.search('\\hello\\', '\hello\') 
<_sre.SRE_Match object; span=(0, 7), match='\hello\'>
>>> re.search(r'\hello\', '\hello\') 
<_sre.SRE_Match object; span=(0, 7), match='\hello\'>
>>> print('\hello\')
hello
登录后复制

【相关推荐】

1. Python免费视频教程

2. Python遇见数据采集视频教程

3. Python学习手册

以上就是Python基础篇之正则表达式的详细内容,更多请关注php中文网其它相关文章!

相关标签:
python速学教程(入门到精通)
python速学教程(入门到精通)

python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号