正则表达式(Regular Expression)是一种文字方式,包含一般标识符(比如 ,a 到 z 中间的英文字母)和特殊符号(称之为"元字符")。
正则表达式应用单独字符串来叙述 、匹配一系列匹配某一语法标准的字符串 。
正则表达式是一个独特的标识符编码序列,它能协助你便捷的查验一个字符串是不是与某类方式匹配。
正则表达式是繁杂的,但它是强劲的 ,学好以后的运用会给你除开提高工作效率外 ,会让你产生肯定的满足感。
在Ptrhon中re模块使Python語言有着所有的正则表达式作用 。
re.match涵数
re.match 试着从字符串的起始部位匹配一个方式,要不是起始部位匹配取得成功得话,match()就返回none ,取得成功返回一个MatchObject 。
涵数英语的语法:
re.match(pattern, string, flags=0)
案例编码:
>>> print(re.match('abc', '123abc')) None >>> re.match('abc', 'abc') <re.Match object; span=(0, 3), match='abc'> >>> re.match('a.c', 'abc') <re.Match object; span=(0, 3), match='abc'> >>> re.match('a\.c', 'a.c') <re.Match object; span=(0, 3), match='a.c'> >>> re.match('a\*c', 'a*c') <re.Match object; span=(0, 3), match='a*c'>
re.search方式
re.search 扫描仪全部字符串并返回第一个取得成功的匹配。
涵数英语的语法:
re.search(pattern, string, flags=0)
案例编码:
>>> re.search('abc', 'abc') <re.Match object; span=(0, 3), match='123abc'> >>> re.search('a.c', 'abc') <re.Match object; span=(0, 3), match='123abc'> >>> re.search('a\.c', 'a.c') <re.Match object; span=(0, 3), match='123a.c'> >>> re.search('a\*c', 'a*c') <re.Match object; span=(0, 3), match='123a*c'>
re.match与re.search的差别
re.match只匹配字符串的刚开始,假如字符串刚开始不符正则表达式,则匹配不成功 ,涵数返回None;而re.search匹配全部字符串,直至寻找一个匹配。
re.compile涵数
compile 涵数用以编译程序正则表达式,形成一个正则表达式( Pattern )目标 ,供 match() 和 search() 这两个涵数应用 。
英语的语法文件格式为:
re.compile(pattern[, flags])
主要参数:
pattern : 一个字符串方式的正则表达式
flags : 可选,表明匹配方式,例如忽视英文大小写 ,几行方式等,实际主要参数为:
修饰符 | 叙述 |
---|---|
re.I | 使匹配对英文大小写不比较敏感 |
re.L | 做本土化鉴别(locale-aware)匹配 |
re.M | 几行匹配,危害 ^ 和 $ |
re.S | 使 . 匹配包含自动换行以内的全部标识符 |
re.U | 依据Unicode字段名分析标识符。这一标示危害 \w, \W, \b, \B. |
re.X | 该标示根据给与你更灵便的文件格式便于你将正则表达式写的更便于了解。 |
正则表达式能够包括一些可选标示修饰符来操纵匹配的方式 。修饰符被特定为一个可选择的标示。好几个标示能够根据按位 OR(|) 他们来特定。如 re.I | re.M 被设成 I 和 M 标示 。
>>>#搜索全部的数据 >>> regex=re.compile(r'\d ') >>> regex.findall('12abc56py7hello') ['12', '56', '7'] >>> >>>##搜索有wh的英语单词,不区别英文大小写 >>> re.findall(r'\w*wh\w*','Who are you, what your name, when you go home', re.I) ['Who', 'what', 'when'] >>> #等额的于上边的 >>> regex=re.compile(r'\w*wh\w*', re.I) >>> regex.findall('Who are you, what your name, when you go home') ['Who', 'what', 'when'] >>>
正则表达式目标
re.RegexObject
re.compile() 返回 RegexObject 目标。
re.MatchObject
group() 返回被 RE 匹配的字符串。
start() 返回匹配刚开始的部位
end() 返回匹配完毕的部位
span() 返回一个元组包括匹配 (刚开始,完毕) 的部位
正则表达式方式
方式字符串应用独特的英语的语法来表明一个正则表达式:
英文字母和数字表示她们本身 。一个正则表达式方式中的英文字母和数据匹配一样的字符串。
大部分英文字母和数据前面一个反斜杠的时候会有着不一样的含意。
标点仅有被转义时才匹配本身 ,不然他们表明独特的含意 。
反斜杠自身必须应用反斜杠转义 。
因为正则表达式一般都包括反斜杠 ,因此 你最好应用初始字符串来表明他们。方式原素(如 r'\t',等额的于 '\t')匹配相对的特殊符号。
下表列出了正则表达式方式英语的语法中的独特原素 。假如你应用方式的另外出示了可选择的标示主要参数,一些方式原素的含意会更改。