正则表达式

创建正则表达式对象

import re

phoneNum = re.compile(r’\d{13}’)—— 声明phoneNum为一个Regex对象,向re.compile传入一个字符串值,表示正则表达式

r这里代表将该字符串标记为原始字符串,他不包括转义字符,如果没有r ‘\\d’才能生效

匹配Regex对象

Regex对象的search()方法查找传入的字符串。

search方法返回一个Match对象。

Match对象有个group()方法,返回被查找字符串中实际匹配的文本

phoneNum = re.compile(r’\d{13}’)

mo = phoneNum.search(‘My number is 13122222222’)

print (‘phone number is :’ + mo.group() )

phone number is :13122222222


利用括号可以分组

group(1)代表第一个括号

groups()方法返回所有分组的 -多个值的元组


表达式匹配符号:

|   管道符号。表示或者

?问号。用在后面。表示可选匹配(表明它前面的分组在这个模式中是可选的)&非贪心式匹配(优先匹配短字符)

*  星号。意味着匹配0次或者多次。星号前面的分组可以出现任意次。

+ 加号。意味着匹配1次或者多次。至少出现一次

{} 花括号。重复特定次数。{3,5} 表示重复3-5次。{3,}表示3次以上,贪心与非贪心匹配适用

\d\D    —0-9中任意数字,大写意味着否命题

\w\W  —任何字母、数字、或者下划线字符

\s\S    —空格、制表符、换行

[ ] 方括号。方括号内普通的正则表达式符号不会被解释,不需要反斜杠转译。使用短横线 ‘-’ 表示字母或者数字的范围

[aeiouAEIOU]将匹配所有的元音字符。[^aeiouAEIOU]匹配所有非元音字符。

^ $ 插入字符和美元字符。表示必须以什么开头或者结尾的匹配。

^\d$匹配必须从开头到结尾都是数字的字符串。

^\d匹配以数字开头的字符串

\d$匹配以数字结尾的字符串

.通配字符,匹配除了换行意外的所有字符。但是只匹配一个字符

(.*)匹配任意文本,贪心与非贪心匹配适用

通过传入re.DOTALL作为re.compile()的第二个参数,可以匹配换行符


方法:


Regex对象的sub() 方法用来替换字符串,需要传入两个参数,第一个参数是字符串,用来取代发现的匹配,第二个参数是用来匹配的正则表达式。

管理复杂的正则表达式,re.VERBOSE作为re.compile()的第二个参数,可以将正则表达式放入多行并加入注释。

不区分大小写匹配。re.I作为re.compile()的第二个参数。

组合使用这些方法,他们都占用re.compile()的第二个参数,可以用’|’管道将它们连在一起使用。

你可能感兴趣的:(正则表达式)