您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

Python基础篇之正则表达式

2024/3/30 14:04:12发布141次查看
正则表达式并不是python的一部分。正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十分强大。下面这篇文章主要介绍了关于python正则表达式基础的相关资料,需要的朋友可以参考下。
前言
之前有人提了一个需求,我一看此需求用正则表达式最合适不过。考虑到之前每次使用正则表达式,都是临时抱佛脚,于是这次我就一边完成任务一边系统的学习了一遍正则表达式。主要参考pycon2016上的一个视频regular expressions。
我将分几篇文章对正则表达式进行总结。
以下是第一部分,基础: 
基础部分
这里总结了正则表达式最基础的用法,其中大部分内容对我(以及大部分程序员)来说都是平时经常用到的,所以我就一笔带过了,只对其中的几处用例子说明。 
     .           除了换行之外的其他所有字符
^           行首
$           行尾
[abcd]      abcd其中的一个字符
[^abcd]     除了abcd之外的任意字符
[a-d]       相当于[abcd]
[a-dz]      相当于[abcdz]
\b          单词边界
\w          字母数字或下划线 相当于[a-za-z0-9_]
\w          与\w相反
\d          数字,相当于[0-9]
\d          与\d相反
\s          空白字符,相当于[ \t\n\r\f\v]
\s          与\s相反
{5}         在此之前的正则表达式部分(下同)准确的出现5次
{2,5}       ~出现2到5次
{2,}        ~出现2次或多次
{,5}        ~出现0到5次
*          ~出现0次或多次
?          ~出现0次或1次
+           ~出现1次或多次
abc|def     匹配abc或者def
\          转义字符,如\表示匹配*,\$表示匹配$* 
\b、 \用以下几个例子简单说明一下: 
     \b:
>>> re.search(r'\bhello\b', 'hello') <_sre.sre_match object; span=(0, 5), match='hello'> >>> re.search(r'\bhello\b', 'hello world') <_sre.sre_match object; span=(0, 5), match='hello'> >>> re.search(r'\bhello\b', 'hello,world') <_sre.sre_match object; span=(0, 5), match='hello'> >>> re.search(r'\bhello\b', 'hello_world') >>>
其实这里,\b大体上和\w一支,但是\b可以匹配行首行尾等非显示类的字符,而\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'\bhello\b', 'hello') <_sre.sre_match object; span=(0, 5), match='hello'> >>> re.search('\bhello\b', '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基础篇之正则表达式的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product