创建正则表达式对象
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()的第二个参数,可以用’|’管道将它们连在一起使用。
网友评论