蜗牛kuai快跑

导航

python之正则表达式

记号

说明 样例
literal 匹配字符串的值 foo
re1|re2 匹配正则表达式re1 或 re2 foo|bar
. 匹配任意字符(除换行符) b.b
^ 匹配字符串的开始 ^Dear
$ 匹配字符串的结尾 /bin/*sh$
* 匹配前面出现的正则表达式零次或多次 [A-Za-z0-9]*
+ 匹配前面出现的正则表达式一次或多次 [a-z]+
? 匹配前面出现的正则表达式零次或一次 goo+
{N} 匹配前面出现的正则表达式N次 [0-9]{3}
{M,N} 匹配重复出现M到N次的正则表达式 [0-9]{3,5}
[...] 匹配字符组里任意一个字符 [ahfj]
[..x-y..] 匹配从x到y中的任意字符 [0-9],[A-Za-z]
[^...] 不匹配字符集中出现的任一字符 [^A-Za-z]
(*|+|?|{})? 用于非贪婪模式 .*?[a-z]
(...) 匹配括号中的正则表达式,并保存为子组 ([0-9]{3})?,f(oo|u)bar

 

记号 说明 样例
\d 匹配任何数字,和[0-9]一样 (\D是\d的反义:任何非数字符) data\d+.txt
\w 匹配任何数字字母字符,和[A-Za-z0-9]相同 (\W是\w的反义) [A-Za-z]\w+
\s 匹配任何空白符,和[\n\t\r\v\f]相同,(\S是\s的反义) of\sthe
\b 匹配单词边界(\B是\b的反义) \bThe\b
\nn 匹配已保存的子组 price:\16
\c 逐一匹配特殊字符c \., \\, \*
\A(\Z) 匹配字符串的开始(结尾) \ADear

 

函数/方法 描述
compile(pattern, flags=0) 对正则表达式模式pattern进行编译,flags可选参数
match(pattern, string, flags=0) 用pattern匹配字符串string开头,如成功则返回匹配对象,否则返回None
search(pattern, string, flags=0) 在字符串string中搜索pattern的第一次出现,如成功则返回匹配对象,否则返回None
findall(pattern, string[,flags]) 在字符串string中搜索pattern的所有出现,返回匹配对象的列表
finditer(pattern, string[,flags]) 和findall相同,但返回的是迭代器
split(pattern, string, max=0) 根据pattern把string分割为一个列表,并返回
sub(pattern, repl, string, max=0) 把string中匹配到的pattern换成repl
subn(pattern, repl, string, max=0) 和sub相同,但并返回替换次数
group(num=0) 返回全部匹配对象(或第num个子组)
groups() 返回一个包含全部匹配的子组的元组

 

    正则表达式默认是贪心匹配的,如果正则表达式模式中使用到通配字,那它在按照从左到右的顺序求值时,会尽量“抓取”满足匹配的最长字符串。有时需要“抓取”最短字符串,因此就需要使用非贪心匹配。非贪婪操作符“?”,可以用在“*”,“+”,“?”的后面。

posted on 2019-01-13 22:21  蜗牛kuai快跑  阅读(128)  评论(0编辑  收藏  举报