笔记(Python核心编程 第 1 部分 通用应用主题 1 章 正则表达式)
Python核心编程
第 1 部分 通用应用主题
1 章 正则表达式
- 管道符号(|):表示一个“从多个模式中选择其 一”的操作。它用于分割不同的正则表达式。就能够增强正则表达式的灵活性,使得正则表达式能够匹配多个字符串 而不仅仅只是一个字符串。择一匹配有时候也称作并(union)或者逻辑或(logical OR)。
Match():match()试图从字符串的起始部分开始匹配模式
#匹配成功
>>> import re
>>> m = re.match('foo', 'foo')
>>> if m is not None:
... m.group()
...
'foo'
#匹配失败
>>> m = re.match('foo', 'bar')
>>> if m is not None:
... m.group()
...
Search():search()函数不但会搜索模式在字符串中 第一次出现的位置,而且严格地对字符串从左到右搜索。
使用 group()方法访问每个独立的子组以及 groups()方法以获取一 个包含所有匹配子组的元组。
findeall:
findall()查询字符串中某个正则表达式模式全部的非重复出现情况。这与 search()在执行 字符串搜索时类似,但与 match()和 search()的不同之处在于,findall()总是返回一个列表。。如 果 findall()没有找到匹配的部分,就返回一个空列表,但如果匹配成功,列表将包含所有成 功的匹配部分(从左向右按出现顺序排列)。
注意,使用 finditer()函数完成的所有额外工作都旨在获取它的输出来匹配 findall()的输出。 最后 ,与 match()和 search()类似,findall()和 finditer()方法的版本支持可选的 pos 和 endpos 参数,这两个参数用于控制目标字符串的搜索边界.
sub()和 subn():都是将某字 符串中所有匹配正则表达式的部分进行某种形式的替换。用来替换的部分通常是一个字符串, 但它也可能是一个函数,该函数返回一个用来替换的字符串。subn()和 sub()一样,但 subn() 还返回一个表示替换的总数,替换后的字符串和表示替换总数的数字一起作为一个拥有两个 元素的元组返回。