【数字客栈】Python 基本功(五)——Python-正则表达式的入门和实例讲解

本文旨在通过一些简单的例子来使读者入门正则表达式。

题目1:如何在一串字符中‘www.baidu.com’找到字符‘www’在字符串中的位置?

import re

print(re.match('www', 'www.runoob.com',re.I).span())  


# 'www'代表我要查询的字符,
# 'www.runoob.com'代表我要检索的字符库,
# .span是一个属性,一个输出查询字符的位置的属性
# 这个位置放的是在匹配过程中的一些属性,此处re.I 是指在匹配的过程中忽略大小写

题目2:在一串字符中‘www.baidu.com’找到字符‘baidu’在字符串中的位置?

re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None

re.search匹配整个字符串,直到找到一个匹配。

import re

print(re.search('runo', 'www.runoob.com').span())

题目3:如何在aabab找到a开头b结尾的字符的所在的位置?

# .表示任意一个字符,*代表多次,.*代表多个不一定相同的字符 ?代表尽可能少得重复
#a.*?b匹配最短的,以a开始,以b结束的字符串。如果把它应用于aabab的话,它会匹配aab和ab。
# 如果不加问号的话,程序会尽可能多的重复
lines='ababab'
ob = re.search('.*',lines,re.I).span()
print(ob)

题目4:如何将要查找的数据模块化,例如分别和一起查找‘aa‘‘bb’‘cc’所在的位置?

l = 'ccaabbccababccbad'
result = re.search('(aa)(bb)(cc)',l,re.I)
print(result.group())
>>'aabbcc'
print(result.group(0))
>>'aa'
print(result.group(1))
>>'bb'
print(result.group(2).span())
>>AttributeError: 'str' object has no attribute 'span'

题目5:例如此处有一个电话号码15106927906,我想把0后边的元素都提取出来并删除,怎么做到?

l = '15106927906'
result = re.search('0.*$',l,re.I)
print(result)
>>     <re.Match object; span=(3, 11), match='06927906'>
print(result.group())
>>     06927906

#     $这个符号代表的是字符串的最后一个字符
l = '15106927906'
del_result = re.sub('0.','',l,re.I)
print(del_result)
>>1519279

题目6:写一个python程序,利用正则表达式,提去一个html页面中的所有超链接,去除html中的标签原始,生成一个文本文件! 

import re
f = open('test.txt')
str = f.read()
fp = open('test_new.txt','w')
del_result = re.finditer('"(http|ftp)s?://.*?"',str)
for match in del_result:
    fp.write(match.group())
    fp.write('\n')
#其中,test.txt内存储的是需要处理的源代码,test_new.txt是处理后的新文件。

在正则表达式中,还有很多很多需要掌握的知识,这篇文章是为了一点都不懂的小白尽快入门使用的,俗话说,师傅领进门,修行在个人,我不可能把所有的知识点都做成一个题目,但是懂了这些题目之后,自己就可以在网上用现有的资源继续学习了,毕竟程序员第一法则:不重复造轮子!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值