一、正则单元
1、特殊代码,正则表达式中指定的一些字符,指代一些内容或表达规则。
\b:单词的开始或结束(只能匹配空格隔开的词)
^和$:字符串的开始或结束
{ }:表示重复
[ ]:表示在范围中的选择,其中特殊代码不起作用
|:或
\:转义
( ):分组
\d \w \s 等:指代特定的内容
2、内容单元
数字:\d [0-9]
字母:[a-zA-Z]
\w:字母和数字
字母和数字涵盖了大部分内容,剩下的就是字符(一般说的字符会包含字母和数字)。
.:表示非换行符以外的一切字符(包括数字,字母)
\s:空白符
\S: 非空白符
[\s\S]: 表示一切字符
\n:可以匹配换行符
反义:类似\S,\D \W等,一般形式为[^eg]
3、重复方式,在使用正则表达式时,肯定会面对大量的不确定的重复,解决方法如下:
*:重复零次或更多次
+:重复一次或更多次
?:重复0次或1次
{n}:重复n次
{n,}:重复n次或更多次
{n,m}: 重复n到m次
二、正则规则
1、替换
满足多种规则中的一种都会被匹配
使用分隔符|,注意顺序:当处于前面的规则满足后就不会执行后面的规则。
个人将[]执行的规则也归在此处,方括号内的项只要有一个匹配到了就视为满足条件。
2、分组
利用()将目标内容括起来,式子中的所有()左括号的出现为计数标准,从左至右被默认的从1开始编号。在正则表达式中可以用\1 \2 等取到相应的匹配到的内容,适合用于相同内容的重复,这波操作也叫后向引用。
在匹配后的提取中可以利用这里的编号取到相应内容。???
形如(?......):匹配但不捕获
eg. re.split(r'(?:,|;|\s)\s*',line)
3、位置指定(待更)
位置指定:
负向位置指定
参考:
python核心编程(第二版)