『娱乐思思话』Python正则表达式由浅入深(二)( 二 )
message='企业名称:CDA数据科学研究院n邮箱:1918560461@qq.comn地址:北京市海淀区厂洼街3号2号楼2层n网址:www.cda.cnn企业名称:广州就学在线科技有限公司n邮箱:981856661@qq.comn地址:广州市黄埔区护林路1198号516房n网址:www.cda.cnn'
findall=re.findall(pattern,message)
print(findall)
Out:[':',':','@','.',':',':','.','.',':',':','@','.',':',':','.','.']
当然 , 单独提取这些符号没有多大意义 , 如果我们希望匹配的是这些符号后面对应的字符呢?我们可以在模式字符串中的列表后面添加元字符和限定符:
pattern='[@:.].*'
message='企业名称:CDA数据科学研究院n邮箱:1918560461@qq.comn地址:北京市海淀区厂洼街3号2号楼2层n网址:www.cda.cnn企业名称:广州就学在线科技有限公司n邮箱:981856661@qq.comn地址:广州市黄埔区护林路1198号516房n网址:www.cda.cnn'
findall=re.findall(pattern,message)
print(findall)
Out:[':CDA数据科学研究院',':1918560461@qq.com',':北京市海淀区厂洼街3号2号楼2层',':www.cda.cn',':广州就学在线科技有限公司',':981856661@qq.com',':广州市黄埔区护林路1198号516房',':www.cda.cn']
同理 , 上一节最后提取企业名称、邮件、地址的例子 , 我们可以写成下面这样的方式:
pattern='[企邮地].*'
message='企业名称:CDA数据科学研究院n邮箱:1918560461@qq.comn地址:北京市海淀区厂洼街3号2号楼2-3层n网址:www.cda.cnn企业名称:广州就学在线科技有限公司n邮箱:981856661@qq.comn地址:广州市黄埔区护林路1198号516房n网址:www.cda.cn'
findall=re.findall(pattern,message)
print(findall)
Out:['企业名称:CDA数据科学研究院','邮箱:1918560461@qq.com','地址:北京市海淀区厂洼街3号2号楼2-3层','企业名称:广州就学在线科技有限公司','邮箱:981856661@qq.com','地址:广州市黄埔区护林路1198号516房']
上面模式字符串的写法相当于匹配以"企"、"邮"、"地"开头的字符 , 以及后续的字符串 , 一直到换行符才结束匹配 。
这类的模式字符串还经常用于匹配某类型的字符 , 比如匹配文本里面所有的汉字 , 我们可以将模式字符串写成'[一-龥]+' , 比如:
pattern='[一-龥]+'
message='企业名称:CDA数据科学研究院n邮箱:1918560461@qq.comn地址:北京市海淀区厂洼街3号2号楼2层n网址:www.cda.cnn
企业名称:广州就学在线科技有限公司n邮箱:981856661@qq.comn地址:广州市黄埔区护林路1198号516房n网址:www.cda.cnn'
findall=re.findall(pattern,message)
print(findall)
Out:['企业名称','数据科学研究院','邮箱','地址','北京市海淀区厂洼街','号','号楼','层','网址','企业名称','广州就学在线科技有限公司','邮箱','地址','广州市黄埔区护林路','号','房','网址']
匹配文本中所有的数字 , 可以写成'[0-9]+' , 比如:
pattern='[0-9]+'
message='企业名称:CDA数据科学研究院n邮箱:1918560461@qq.comn地址:北京市海淀区厂洼街3号2号楼2层n网址:www.cda.cnn
企业名称:广州就学在线科技有限公司n邮箱:981856661@qq.comn地址:广州市黄埔区护林路1198号516房n网址:www.cda.cnng'
findall=re.findall(pattern,message)
print(findall)
Out:['1918560461','3','2','2','981856661','1198','516']
当然 , 直接使用元字符"d"来匹配所有数字也是一样:
pattern='d+'
message='企业名称:CDA数据科学研究院n邮箱:1918560461@qq.comn地址:北京市海淀区厂洼街3号2号楼2层n网址:www.cda.cnn企业名称:广州就学在线科技有限公司n邮箱:981856661@qq.comn地址:广州市黄埔区护林路1198号516房n网址:www.cda.cnng'
推荐阅读
- 「Python」小卖家也能月入5000+的方法
- Python爱好者社区| 程序员逆天改命,漫画
- Python:2019年,这24000程序员是如何使用Python的?
- [编程]TIOBE 5 月编程语言排行榜:C语言跑到第一,python连续两年上涨
- 【埃尔法哥哥】kNN分类算法及其python实现
- 「python训练营」数据分析:寻找Python最优计算性能
- 【智能家居科技】谁能取代Python?我使用Go来部署机器学习模型的原因
- 「简简科技」数据科学中选择Python还是R语言?
- 「罗永浩」入门python,看完这个300行代码的例子,你们会喜欢的~
- 『天津冯十一』我决定开启爬虫之旅,学了41天python基础知识