正则表达式

2018-08-28  本文已影响0人  ozil_oo

1.      " *  +  . ?"

". " 匹配除换行符的任意一个字符

"*" 0次或多次匹配

"+" 1次或多次匹配

"?" 0次或一次匹配

2. \s\S \w\W \d\D

\s 匹配空格

\S 匹配非空格

\w  (0-9, a-z, and A-Z) 加上下划线"_"

\W 

\d 匹配数字

\D 匹配非数字

3. ^ $

^  匹配字符串开头

& 匹配字符串结尾

4.[] () {}

[] 集合 [abc]表示a、b、c都匹配

{} 匹配长度 {4} {2,7}

()

5. \b

\b 单词边界

6.贪婪匹配和非贪婪匹配

*?重复任意次,但尽可能少重复

+?重复1次或更多次,但尽可能少重复

??重复0次或1次,但尽可能少重复

{n,m}?重复n到m次,但尽可能少重复

{n,}?重复n次以上,但尽可能少重复

7.捕获

()

\1

8.零宽断言

你想匹配但不想捕获

(?=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)匹配以空白符间隔的数字(再次强调,不包括这些空白符)。

9.python re模块的  match() search() findall() sub() compile()

参考链接:正则表达式30分钟入门教程

上一篇下一篇

猜你喜欢

热点阅读