源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2021-07-23 06:39 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Python正则表达式教程之一:基础篇
[b]前言[/b] 之前有人提了一个需求,我一看此需求用正则表达式最合适不过。考虑到之前每次使用正则表达式,都是临时抱佛脚,于是这次我就一边完成任务一边系统的学习了一遍正则表达式。主要参考PyCon2016上的一个视频[url=https://www.youtube.com/watch?v=W4ReH9IPH-Q&list=WL&index=1&t=215s]Regular Expressions[/url]。 我将分几篇文章对正则表达式进行总结。 [b]以下是第一部分,基础: [/b] [b]基础部分[/b] 这里总结了正则表达式最基础的用法,其中大部分内容对我(以及大部分程序员)来说都是平时经常用到的,所以我就一笔带过了,只对其中的几处用例子说明。       .           除了换行之外的其他所有字符      ^           行首      $           行尾      [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、 \用以下几个例子简单说明一下:  [/b]     [b]\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不可以。      [b]\:[/b]
>>> re.search(r'\$100', '$100')
<_sre.SRE_Match object; span=(0, 4), match='$100'>
>>> re.search(r'$100', '$100') 
>>> 
想要匹配那些在正则表达式中有特殊含义的字符,如$、^、*等,就需要用\进行转义。  [b]raw string:[/b] 另外,前面例子中,模式字符串(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\
[b]总结[/b] 以上就是关于Python正则表达式之基础的全部内容了,有了这些知识,正则表达式的基本运用就没什么问题了。对于一些特殊情况,还需要掌握另外一些高级用法,敬请期待后续文章。希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,如果有疑问大家可以留言交流。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部