gpt4 book ai didi

Python正则表达式教程之一:基础篇

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 26 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章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:

?
1
2
3
4
5
6
7
8
>>> 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不可以。  。

     \

?
1
2
3
4
>>> 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个\,在正则表达式中又转义一次,最终剩下一个\)。例如:

?
1
2
3
4
5
6
7
8
9
10
11
12
>>> 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\

总结 。

以上就是关于Python正则表达式之基础的全部内容了,有了这些知识,正则表达式的基本运用就没什么问题了。对于一些特殊情况,还需要掌握另外一些高级用法,敬请期待后续文章。希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,如果有疑问大家可以留言交流.

原文链接:http://blog.guoyb.com/2017/02/27/python-regex/ 。

最后此篇关于Python正则表达式教程之一:基础篇的文章就讲到这里了,如果你想了解更多关于Python正则表达式教程之一:基础篇的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com