模式匹配与正则表达式
Python中使用正则表达式的步骤
- 用import re导入正则表达式模块
- 用re.compile()函数创建一个Regex对象(记得使用原始字符串)
- 想Regex对象的search()方法中传入想要查找的字符串,返回一个Match对象
- 用Match对象的group()方法返回实际匹配文本的字符串;
用正则表达式匹配更多模式
1.利用括号分组:re.compile(r'(\d\d\d)-(\d\d\d-\d\d\d\d)');
2.用管道匹配多个分组:re.compile(r'Tom|Lilei');re.compile(r'Hello(Tom|Lilei|Hanmeimei)');
3.用问号实现可选匹配:re.compile(r'Bat(wo)?man');
4.用星号匹配零次或多次:re.compile(r'Bat(wo)*man');
5.用加好匹配一次或多次:re.compile(r'Bat(wo)+man');
6.用花括号匹配特定次数:re.compile(r'Ha{2}');re.compile(r'Ha{3,5}');
7.贪心和非贪心匹配:re.compile(r'Ha{2}');
默认是贪心;非贪心:re.compile(r'Ha{2}?')
8.插入字符和美元字符:匹配以hello为开头,re.compile(r’^hello’);以hello为结尾,re.compile(r'hello$')
9.通配字符:.(句号)字符成为通配字符,它匹配除了换行之外的所有字符。要匹配真正的句点,要用倒斜杠转义:. 。
10.用点-星匹配所有字符:re.compile(r'name:(.*) age:(.*)');
(分为贪心、非贪心模式)
11.用句点字符匹配换行:re.compile('.*',re.DOTALL)
12.不区分大小写的匹配:re.compile()传入re.IGNORECASE或者re.I
作为第二个参数传入
13.用sub()方法替换字符串:nameRegex=re.compile(r'test \w+'); result=nameRegex.sub('class','test one');#result为替换后的结果字符串