正则表达式使用总结

正则表达式使用总结

\b      并不匹配这些单词分隔字符中的任何一个,它只匹配一个位置
.       匹配除了换行符以外的任意字符
*       *前面的内容可以连续重复使用任意次(即0次或多次)
?       ?前面的内容可以出现0次或1次
.*      匹配任意数量的不包含换行的字符
+      +前面的内容可以连续重复使用1次或多次(即1次或多次)
*?      匹配重复任意次,但尽可能少重复的字符
+?      匹配重复1次或更多次,但尽可能少重复的字符
??      匹配重复0次或1次,但尽可能少重复的字符
{n,m}?      重复n到m次,但尽可能少重复
{n,}?      重复n次以上,但尽可能少重复

^      匹配你要用来查找的字符串的开头
$      匹配结尾

[]      匹配[]中出现的任意一个字符
[aeiou]      匹配任何一个英文元音字母
[.?!]      匹配标点符号(.或?或!)
[^x]      匹配除了x以外的任意字符
[^aeiou]       匹配除了aeiou这几个字母以外的任意字符

\d      匹配任意数字字符
\D      匹配任意非数字的字符
\d{2}      匹配2个任意数字
\d{2,5}      匹配2-5个任意数字
\d+      匹配1个或更多连续的数字

\w      匹配字母或数字或下划线或汉字等
\W      匹配不是字母或数字或下划线或汉字等
\s      匹配任意的空白符,包括空格,制表符(Tab),换行符,中文全角空格等
\S      匹配任意的不是空白符,包括空格,制表符(Tab),换行符,中文全角空格等

分枝条件:

|      有几种规则,如果满足其中任意一种规则都应该当成匹配,具体方法是用|把不同的规则分隔开

0\d{2}-\d{8}|0\d{3}-\d{7} 这个表达式能匹配两种以连字号分隔的电话号码:一种是三位区号,8位本地号(如010-12345678),一种是4位区号,7位本地号(0376-2233445)

分组:

()      用小括号来指定子表达式(也叫做分组),然后你就可以指定这个子表达式的重复次数了,你也可以对子表达式进行其它一些操作

贪婪匹配:

匹配尽可能多的字符
a.*b      它将会匹配最长的以a开始,以b结束的字符串

非贪婪匹配:

匹配尽可能少的字符

.?      匹配任意数量的重复,但是在能使整个匹配成功的前提下使用最少的重复。
a.
?b      匹配最短的,以a开始,以b结束的字符串。如果把它应用于aabab的话,它会匹配aab(第一到第三个字符)和ab(第四到第五个字符)。

零宽断言:

(?=exp)      也叫零宽度正预测先行断言,它断言自身出现的位置的后面能匹配表达式exp。比如\b\w+(?=ing\b),匹配以ing结尾的单词的前面部分(除了ing以外的部分),如查找I’m singing while you’re dancing.时,它会匹配sing和danc。

(?<=exp)      也叫零宽度正回顾后发断言,它断言自身出现的位置的前面能匹配表达式exp。
比如  (?<=\bre)\w+\b   会匹配以re开头的单词的后半部分(除了re以外的部分),例如在查找reading a book时,它匹配ading。

(?<=\s)\d+(?=\s)       匹配以空白符间隔的数字(再次强调,不包括这些空白符)

python中的re模块函数:

第一个参数pattern是正则表达式字符串或正则表达式对象
第二个参数string是要跟正则表达式做匹配的字符串对象
compile(pattern, flags=0)      编译正则表达式返回正则表达式对象

match(pattern, string, flags=0)      用正则表达式匹配字符串 成功返回匹配对象 否则返回None

search(pattern, string, flags=0)      搜索字符串中第一次出现正则表达式的模式 成功返回匹配对象 否则返回None

split(pattern, string, maxsplit=0, flags=0)      用正则表达式指定的模式分隔符拆分字符串 返回列表

sub(pattern, repl, string, count=0, flags=0)      用指定的字符串替换原字符串中与正则表达式匹配的模式 可以用count指定替换的次数

fullmatch(pattern, string, flags=0)      match函数的完全匹配(从字符串开头到结尾)版本

findall(pattern, string, flags=0)      查找字符串所有与正则表达式匹配的模式 返回字符串的列表

finditer(pattern, string, flags=0)      查找字符串所有与正则表达式匹配的模式 返回一个迭代器

purge()      清除隐式编译的正则表达式的缓存

re.I / re.IGNORECASE       忽略大小写匹配标记

re.M / re.MULTILINE      多行匹配标记

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值