学习一段python正則表達式了, 对match、search、findall、finditer等函数作一小结 



以下以一段网页为例,用python正則表達式作一个范例:

strHtml = '''<div> <a href="/user/student/" class="user-t"><img src="/uploads/avatar/2015/06/082e408c-14fc-11e5-a98d-00163e02100b_big.jpg"></a>
</div> </div>
<div class="navbar-search-btn visible-xs visible-sm">
<a href="/common/mobile/search/" class="sch"></a>
</div>
'''
print strHtml #正則表達式 匹配如:< a href=”xxxxx” class=”xxxx”
remod = re.compile(r"<a href=\"([^\"]*)\" class=\"([^\"]*)\"")

search方法举例

search 会查找第一个找到匹配字符串并返回

item = remod.search(strHtml)

if item:
print item.group()
else:
print "no match [search]" # 输出:
# <a href="/user/student/" class="user-t"

match方法举例

match 会从字符串开头匹配查找第一个找到匹配字符串并返回

item = remod.match(strHtml, re.M|re.S)

if item:
print item.group()
else:
print "no match [match]"no match [match] # 输出
# no match [match]

findall方法举例

Findall查找全部找到匹配字符串并返回一个列表,假设有匹配的组(group),那么它是这个列表下的一个元组

items = remod.findall(strHtml)
if items:
print items
for it in items:
print it
else:
print "no match [findall]" # 输出
# [('/user/student/', 'user-t'), ('/common/mobile/search/', 'sch')]
# ('/user/student/', 'user-t')
# ('/common/mobile/search/', 'sch')

finditer方法举例

finditer查找全部找到匹配字符串并返回一个group,能够通过下标引用, 以下从1開始

tems = remod.finditer(strHtml
if items:
for it in items:
print "it.group():",it.group()
print "it.group(0):",it.group(0)
print "it.group(1):",it.group(1)
print "it.group(2):",it.group(2)+"\n"
else:
print "no match [findall]" # 输出
# it.group(): <a href="/user/student/" class="user-t"
# it.group(0): <a href="/user/student/" class="user-t"
# it.group(1): /user/student/
# it.group(2): user-t # it.group(): <a href="/common/mobile/search/" class="sch"
# it.group(0): <a href="/common/mobile/search/" class="sch"
# it.group(1): /common/mobile/search/
# it.group(2): sch

Python正則表達式小结(1)的更多相关文章

  1. Python——正則表達式(2)

    本文译自官方文档:Regular Expression HOWTO 參考文章:Python--正則表達式(1) 全文下载 :Python正則表達式基础 ======================== ...

  2. Python正則表達式

    Python正則表達式 正則表達式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配. Python 自1.5版本号起添加了re 模块,它提供 Perl 风格的正則表達式模式. r ...

  3. Python正則表達式:怎样使用正則表達式

    正則表達式(简称RE)本质上能够看作一个小的.高度专业化的编程语言,在Python中能够通过re模块使用它.使用正則表達式,你须要为想要匹配的字符串集合指定一套规则,字符串集合能够包括英文句子.e-m ...

  4. python 正則表達式推断邮箱格式是否正确

    import re def validateEmail(email):     if len(email) > 7:         if re.match("^.+\\@(\\[?) ...

  5. python 学习笔记 10 -- 正則表達式

    零.引言 在<Dive into Python>(深入python)中,第七章介绍正則表達式,开篇非常好的引出了正則表達式,以下借用一下:我们都知道python中字符串也有比較简单的方法, ...

  6. 使用正則表達式的格式化与高亮显示json字符串

    使用正則表達式的格式化与高亮显示json字符串 json字符串非常实用,有时候一些后台接口返回的信息是字符串格式的,可读性非常差,这个时候要是有个能够格式化并高亮显示json串的方法那就好多了,以下看 ...

  7. JavaScript正則表達式知识汇总

    Js 正則表達式知识汇总 正則表達式: 1.什么是RegExp?RegExp是正則表達式的缩写.RegExp 对象用于规定在文本中检索的内容. 2.定义RegExp:var +变量名=new RegE ...

  8. python使用正則表達式

    python中使用正則表達式 1. 匹配字符 正則表達式中的元字符有 .  ^  $ *   +  ?  { }  [ ]  \  | ( ) 匹配字符用的模式有 \d 匹配随意数字 \D 匹配随意非 ...

  9. python进阶十_正則表達式(一)

    近期状态一直不太好,至于原因,怎么说呢,不好说,总之就是纠结中覆盖着纠结,心思全然不在点上,希望能够借助Python的学习以及博客的撰写来调整回来,有的时候回头想一想,假设真的是我自己的问题呢,曾经我 ...

随机推荐

  1. 今天被 <!doctype html> 搞了两个小时,两个页面同样的样式,chosen右边的小箭头,一个上下居中对齐 一个居顶对齐。最后找到问题所在doctype

    今天被 <!doctype html> 搞了两个小时,两个页面同样的样式,chosen右边的小箭头,一个上下居中对齐 一个居顶对齐.最后找到问题所在doctype <-- 这个小箭头

  2. sql备份

    SELECT id,Name FROM TeachSite GROUP BY id select * from #temp as [type], SchoolRollID,SUM(Chargeable ...

  3. python 3 廖雪峰博客笔记(二) python解释器

    python 解释器用于理解 python代码,存在多种python解释器 CPython 官方版本python解释器,用C语言开发,使用最广泛 IPython 基于CPython,在交互方式上有所增 ...

  4. [HNOI/AHOI2018]转盘(线段树优化单调)

    gugu  bz lei了lei了,事独流体毒瘤题 一句话题意:任选一个点开始,每个时刻向前走一步或者站着不动 问实现每一个点都在$T_i$之后被访问到的最短时间 Step 1 该题可证: 最优方案必 ...

  5. jQuery对table排序

    <script> //col对应列,cmp两数比较方法,返回值为TRUE,FALSE function sort(col, cmp) { var table = $("#test ...

  6. Python Pandas库的学习(一)

    今天我们来学习一下Pandas库,前面我们讲了Numpy库的学习 接下来我们学习一下比较重要的库Pandas库,这个库比Numpy库还重要 Pandas库是在Numpy库上进行了封装,相当于高级Num ...

  7. Python面向对象之类属性类方法静态方法

    类的结构 实例 使用面向对象开发时,第一步是设计类: 当使用 类名() 创建对象时,会自动执行以下操作: 1.为对象在内存中分配空间--创建对象: 2.为对象的属性 设置初始值--初始化方法(init ...

  8. configparser logging

    configparser模块 # 该模块适用于配置文件的格式与windows ini文件类似,可以包含一个或多个节(section),每个节可以有多个参数(键=值). import configpar ...

  9. 关于必须添加对程序集“System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”的引用异常问题

    问题描述: 下午调试代码的时候突然发现页面突然异常了,原本以为是代码哪里写错了,后来通过定位发现MVC,UI界面的Linq异常,即关于必须添加对程序集“System.Runtime, Version= ...

  10. 【XML】-- C#读取XML中元素和属性的值

    Xml是扩展标记语言的简写,是一种开发的文本格式. 啰嗦几句儿:老师布置的一个小作业却让我的脑细胞死了一堆,难的不是代码,是n多嵌套的if.foreach,做完这个,我使劲儿想:我一女孩,没有更多女孩 ...