社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

还不会Python正则表达式?看这篇文章试试!

Python学习交流 • 5 年前 • 332 次点击  

今天写爬虫偶然想到了初学正则表达式时候,看过一篇文章非常不错。检索一下还真的找到了。

re模块




re.search

经常用match = re.search(pat, str)的形式。因为有可能匹配不到,所以re.search()后面一般用if statement。



re.match

re.match和re.search很相似,只是re.match是从字符串的开头开始匹配。

加我VX:mmp9972   即可获取数十套PDF哦!

常用正则字符意义


  • a, X, 9,等字符匹配自己, 元字符不匹配自己,因为有特殊意义,比如 . ^ $ * + ? { }[ ] | ( )

  • . 英文句号,匹配任意字符,不包含' '

  • w 匹配'word'字符,[a-zA-Z0-9]

  • W 匹配非'word'字符

  •  匹配'word'和'non-word'之间边界

  • s 匹配单个whitespace字符,space, newline, return, tab, form [ ]

  • S 匹配non-whitespace字符

  • , , 匹配tab, newline, return

  • d 匹配数字[0-9]

  • ^ 匹配字符串开头

  • $ 匹配字符串结尾

重复

‘+’ 一或多次, ‘*’ 零或多次, ‘?’ 零或一次

方括号[]




[]类似于or

Square brackets can be used to indicate a set of chars, so [abc] matches 'a' or 'b' or 'c'.



Group Extraction圆括号()

有时候需要提取匹配字符的一部分,比如刚才的邮箱,我们可能需要其中的username和hostname,这时候可以用()分别把username和hostname包起来,就像r'([w.-]+)@([w.-]+)',如果匹配成功,那么pattern不改变,只是可以用match.group(1)和match.group(2)来username和hostname,match.group()结果不变。



findall and groups

()和findall()结合,如果包括一或多个group,就返回a list of tuples。



给re.search加^之后是一样的。

re.sub

re.sub(pat, replacement, str)在str里寻找和pattern匹配的字符串,然后用replacement替换。replacement可以包含或者来代替相应的group,然后实现局部替换。





今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/qB6RUIM65R
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/25688
 
332 次点击