python正则表达式精讲---split方法与sub方法

1. split方法,以正则表达式分割字符串

字符串提供的split方法可以根据分割符对字符串进行分割,但是该方法一次只能使用一个分隔符,特定场景下,我们需要根据多个分割符进行分割,比如下面的列表

lst = [
    '1小时3分15秒',
    '4分39秒',
    '54秒'
]

列表里的3个字符串,需要根据小时,分,秒进行分割,得到其中的数字部分,这个功能,使用字符串的split方法就无法完成,对于这样的需求,你可以使用正则表达式的split方法。

正则表达式的split方法可以根据能够匹配的子串进行分割,这样分隔符就可以灵活的表达

import re

lst = [
    '1小时3分15秒',
    '4分39秒',
    '54秒'
]

pattern = re.compile('小时|分|秒')

for time_str in lst:
    res = pattern.split(time_str)
    print(res)

这段代码的含义是,以正则表达式分割字符串,而正则表达式里,使用了替换,可以使用小时分割,使用分进行分割,使用秒进行分割,如此就实现了多个分隔符的分割。

2. sub方法,替换字符串中的匹配项

假设字符串内容为

text = '我有3个电话号,分别是13343454523, 13341154523,13341152223'

电话号属于隐私信息,需要替换成***,来保证用户的隐私,如果使用字符串的replace方法,很难完成这个要求,但使用sub方法,则变得非常容易,sub方法根据正则表达式进行替换,这样,就无需指定需要替换的子串了

import re

text = '我有3个电话号,分别是13343454523, 13341154523,13341152223'

pattern = re.compile('\d{11}')
text = pattern.sub("***", text)
print(text)

程序输出结果

我有3个电话号,分别是***, ***,***

扫描关注, 与我技术互动

QQ交流群: 211426309

加入知识星球, 每天收获更多精彩内容

分享日常研究的python技术和遇到的问题及解决方案