正则表达式语法及其在python的应用

一、语法

参考:https://www.liujiangblog.com/course/python/73

1、普通字符:正则表达式中的普通字符在进行匹配的时候只会匹配与自身相同的一个字符。

2、元字符:.小数点;|逻辑或;[]匹配字符集中的一个字符;[^]对字符集求反;-定义字符集中的字符区间;\对紧跟其后的一个字符进行转义;()对表达式进行分组,将圆括号内的内容当作一个整体, 并获得匹配的值。

3、转义字符:\r匹配回车;\n匹配换行符;\t匹配制表符;\\匹配\斜杠;\^匹配^;\$匹配$;\.匹配.

4、预定义匹配字符集:\d匹配数字0~9;\w匹配数字字母下划线;\s匹配空格制表符换行符等空白字符其中的任意一个;\D、\W、\S为对应小写的反集

5、重复匹配:{n}表达式重复n次;{m, n}表达式至少重复m次,最多重复n次;{m,}表达式至少重复m次;?匹配表达式0次或1次;+表达式至少出现1次;*表达式出现0次及更多任意次

6、位置匹配:^在字符串开始位置匹配;$在字符串结束位置匹配;\b匹配单词边界,即单词和空格之间的位置,符号本身不匹配任何字符串;\B匹配非单词边界,即左右两边都是\w范围或者左右两边都不是\w范围时的字符缝隙

7、贪婪和非贪婪模式:在重复匹配时,正则表达式默认总是尽可能多地匹配,这就是贪婪模式;而对于尽可能少地匹配的情形,被称为非贪婪模式,在修饰匹配次数的特殊符号后加上问号?即可。

8、反向引用:在匹配表达式时,表达式引擎会将小括号()包含的表达式所匹配到的字符串记录下来,在获取匹配结果的时候,小括号包含的表达式所匹配到的字符串可以单独获取,同时在匹配过程中也可以引用。引用的方法为\加上一个数字,\1引用表示引用第1对括号内的匹配到的字符串,\2引用第2对括号内匹配到的字符串……以此类推。

 二、python中的re模块

参考: https://www.liujiangblog.com/course/python/74

re模块的三大搜索函数:re.findall() re.match() re.search()

re.match()会从给定字符串的开头开始匹配,匹配不成功返回None,匹配成功后返回第一个匹配对象,该对象具有.start()、.end()、.span()、.group()方法,用于返回匹配结果的开始下标、结束下标、位置范围以及匹配到的字符串本身。

re.search()会在整体文本范围内寻找,返回第一个匹配到的字符串。和re.match()的不同之处在于不限制从开头开始匹配。

re.findall()会进行全文查找,并将所有匹配到的结果组成一个字符串列表,如果一个都没有匹配到那么将返回一个空列表。

 

 

posted @ 2023-05-10 14:16  FreeCheng  阅读(18)  评论(0编辑  收藏  举报