正则表达式2

来源:互联网 发布:如何屏蔽淘宝短信 编辑:程序博客网 时间:2024/06/10 16:10

关于匹配次数的一些符号:

* 匹配任意次数+  至少1次?  0次或者1次{N}  匹配N次{M~N}  匹配M~N次[...] ...代表任意字符,[...]的意思是来自字符集的任一个字符[x~y] 匹配x~y的任一个字符[^...]  不匹配字符集的任一字符(...)  匹配封闭的正则表达式,然后另存为子组。

除了可以用^匹配起始字符串,用$匹配结尾字符串,我们还可以用\b匹配一个单词的边界,用\B匹配出现在一个单词中间的模式。
举例:\bthe可以匹配bite the dog中的the,但是无法匹配bitethe dog中的the。\Bthe就可以匹配到bitethe dog,但是无法匹配bite the dog。

关于?,还有其他含义:如果问号紧跟在任何使用闭合操作符的匹配后面,它将直接要求正则表达式引擎匹配尽可能少的次数。
什么是闭合操作符?举例: []、{}

re模块核心函数
re.compile(pattern,flags=0) 使用任何可选的标记来编译正则表达式的模式,然后返回一个正则表达式对象
compile()函数提供的是预编译功能,可以提高代码执行速度。你也可以不预编译,选择权在你。
re.match(pattern,string,flags=0) 尝试使用带有可选的标记的正则表达式的模式来匹配字符串。如果匹配成功,就返回匹配对象;如果失败,就返回None
re.search(pattern,string,flags=0) 使用可选标记搜索字符串中第一次出现的正则表达式模式。如果匹配成功,就返回匹配对象;如果失败,就返回None
re.findall(pattern,string[,flags]) 查找字符串中所有(非重复)出现的正则表达式模式,并返回一个匹配列表
re.finditer(pattern,string[,flags]) 与findall()函数相同,但返回的不是一个列表,而是一个迭代器。对于每一次匹配,迭代器都返回一个迭代对象。
re.split(pattern,string,max=0) 根据正则表达式的模式分隔符,split函数将字符串分割为列表,然后返回成功匹配的列表,分割最多操作max次。(默认分割所有匹配成功的位置)