深入Python3(四) 正则表达式

0.摘要

  初步了解 P y t h o n 3 Python3 Python3中的正则表达式。

1.案例研究: 街道地址

在这里插入图片描述

  我的目的是要标准化街道的格式,比如把街道最后的英文单词 R O A D ROAD ROAD替换为 R D . RD. RD.。在第一个例子中使用 r e p l a c e ( ) replace() replace()就可以了。
  但是有些街道名中 R O A D ROAD ROAD出现了多次,比如第二个例子,这时候替换得到的结果是错误的。
  为了解决上面这个问题,你可能会这么考虑:只在地址的最后四个字符中替换 R O A D ROAD ROAD s [ − 4 : ] s[-4:] s[4:])。然后把剩下的字符串独立开来处理( s [ : − 4 ] s[:-4] s[:4])。这个方法很笨拙。比如,这个方法会依赖于你要替换的字符串长度(如果你用 . S T .ST .ST来替换 S T R E E T STREET STREET,就需要在 s [ − 6 : ] s[-6:] s[6:]中查找 S T R E E T STREET STREET,然后再取 s [ : − 6 ] s[:-6] s[:6]。你难道还想半年后回来继续修改BUG?反正我是不想。
  是时候转换到正则表达式了。在 p y t h o n python python中,所有的正则表达式相关功能都包含在 r e re re模块中。注意第一个参数最后的美元符号,这是一个匹配 R O A D ROAD ROAD仅仅出现在字符串结尾的正则表达式。表示字符串结尾(还有一个相应的表示字符串开头的字符 ^ )。正则表达式模块的 r e . s u b ( ) re.sub() re.sub()函数可以做字符串替换,它在字符串 s s s中用正则表达式 R O A D $ ROAD$ ROAD来搜索并替换成 R D . RD. RD.。它只会匹配字符串结尾的 R O A D ROAD ROAD,而不会匹配到 B R O A D BROAD BROA

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值