Python中简单的正则表达式

   我个人认为Python中的re部分比较难,我也找了一些书籍来看,主要是Python基础教程,来分享一下今天下午的学习成果。
  1. 什么是正则表达式
    正则表达式是可以匹配文本片段的模式。最简单的正则表达式就是单个字符,可以匹配其自身的。简单的说就是在文本寻找你要的东西。
  2. 简单的使用方法

    通配符:点号(.)一个点号可以匹配任何一个字符(空格,+-*%)
    转义符:\, 在re模式下一个就可以,不然的话要用两个
    选择符:|,可以在匹配的时候进行选择例如‘Python|perl’就可匹配字符‘python‘和’perl‘
    子模式:(),可以使字符的一部分,’p(ython|erl)’
    重复子模式:()?,问号前面的括号,匹配时是可以里面的内容可以没有的,

3.具体例子
line中的是主要的文本内容,
re1,re2,re3是匹配的不同的内容,分别实现的功能是查找中文,查找链接,查找标题

# coding:gb2312
import re 
line='''
<table class="infobox vevent" cellspacing="3" style="border-spacing:3px;width:22em;text-align:left;font-size:small;line-height:1.5em;">   
<caption class="summary"><b>ActionScript</b></caption>   
<tr>   
<th scope="row" style="text-align:left;white-space:nowrap;;;">发行时间</th>   
<td style=";;">1998年</td>   
</tr>   
<tr>   
<th scope="row" style="text-align:left;white-space:nowrap;;;">实现者</th>   
<td class="organiser" style=";;"><a href="/wiki/Adobe_Systems" title="Adobe Systems">Adobe Systems</a></td>   
</tr>   
<tr>   
<tr>   
<th scope="row" style="text-align:left;white-space:nowrap;;;">启发语言</th>   
<td style=";;"><a href="/wiki/JavaScript" title="JavaScript">JavaScript</a>、<a href="/wiki/Java" title="Java">Java</a></td>   
</tr>   
</table>   
'''



re1=r'<th scope=.*?>(.*?)</th>'
re2=r'(?<=href=\").+?(?=\")'
re3=r'(?<=title=\").+?(?=\")'
for z in re1,re2,re3:
    rec_th=re.findall(z,line ,re.M|re.I)
    if rec_th!='':
        for x in rec_th:
            print x

运行的结果就是
这里写图片描述

4.还有一些很好的例子
可以稍微借鉴一下,

import re 
href = '<p><a href="www.csdn.cn" title="csdn">CSDN</a></p>'  
link = re.findall(r"(?<=href=\").+?(?=\")", href)
print link 
# coding:gb2312
lines = '''
<table>
    <tr>
        <td>序列号</td><td>DEIN3-39CD3-2093J3</td>
        <td>日期</td><td>2013年1月22日</td>
        <td>售价</td><td>392.70 元</td>
        <td>说明</td><td>仅限5用户使用</td>
    </tr>
</table>
'''

import re
m = re.findall(r'<td>(.*?)</td>', lines, re.I|re.M)
if m:
    for x in m:
        print x
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值