re.match、re.search、re.findall、re.compile
- 正则切割
import re # string = '正则其实不难,但是学完之后,发现什么也写不出来,是这样吧' # print(string.split(',')) c = re.compile(r'\d') string = '正则其实不难1但是学完之后2发现什么也写不出来3是这样吧' # 按照正则进行切割 print(c.split(string)) # 独立方式 # print(re.split(r'\d', string))
- 正则替换
- 示例1:
import re # s = 'If you do not leave me I will by your side until the life end' # print(s.replace(' ', '*')) s = 'If1you2do3not4leave5me6I7will8by9your0side1until3the5life7end' # 正则替换,可以指定次数 s2 = re.sub(r'\d', ' ', s, 2) # 功能同上,返回一个元组 (替换结果,替换次数) # s2 = re.subn(r'\d', ' ', s) print(s2)
- 示例2:
import re s = 'If1you2do3not4leave5me6I7will8by9your0side1until3the5life7end' ''' def tihuan(m): # 每次匹配都会调用一次,m就是匹配结果对象 return m.group() * 2 s2 = re.sub(r'\d', tihuan, s) ''' # 替换目标字符换成函数:可以人为干预替换过程 s2 = re.sub(r'\d', lambda m: str(int(m.group())*2), s) print(s2)
正则转义
- 示例:
import re ''' python: \d \\d \\\d \\\\d r'\\d' re: \d \d \\d \\d \\d 匹配: 数字 数字 \d \d \d ''' # 建议:写正则时前面添加 r s = re.search(r'\\d', 'hello\dworld') if s: print(s.group())
- 说明:
- 匹配正则语法中的字符都需要进行转义
- 书写正则时建议前面添加
r
,可以避免python
对字符串的转义处理
练习:
- 匹配手机号
- 匹配邮箱
- 匹配URL(http://www.baidu.com:80/index.html?id=3&page=5)
- 匹配IP地址(IPv4)
- 把下划线命名(也叫蛇形命名,所有单词都是小写,中间通过下划线连接),转化为小驼峰命名法(第一个单词小写,其余所有单词首字母大写)。例如'go_to_next_page',转化后改写为'goToNextPage'。要求:用正则表达式替换
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~