Python正則表達式小结(1)

学习一段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
时间: 2024-10-08 13:50:48

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

Python——正則表達式(2)

本文译自官方文档:Regular Expression HOWTO 參考文章:Python--正則表達式(1) 全文下载 :Python正則表達式基础 ====================================================================================== 3.使用正則表達式 如今.我们已经学习了一些简单的正則表達式,但我们应该怎么在Python中使用它们呢?re模块提供了一个连接正則表達式引擎的接口,同意你将RE编译成对象并利

正則表達式小结

经常使用元字符 代码 说明 . 匹配除换行符以外的随意字符 \w 匹配字母或数字或下划线或汉字 \s 匹配随意的空白符 \d 匹配数字 \b 匹配单词的開始或结束 ^ 匹配字符串的開始 $ 匹配字符串的结束 经常使用限定符 代码/语法 说明 * 反复零次或很多其它次 + 反复一次或很多其它次 ? 反复零次或一次 {n} 反复n次 {n,} 反复n次或很多其它次 {n,m} 反复n到m次 经常使用反义词 代码/语法 说明 \W 匹配随意不是字母,数字.下划线,汉字的字符 \S 匹配随意不是空白符的

JavaScript正則表達式知识汇总

Js 正則表達式知识汇总 正則表達式: 1.什么是RegExp?RegExp是正則表達式的缩写.RegExp 对象用于规定在文本中检索的内容. 2.定义RegExp:var +变量名=new RegExp(); 3.RegExp 对象有 3 个方法: 1)test()检索字符串中的指定值,返回值是true或false. var p1=new Reg("e"); document.write(Reg.test("welcome to China!")); 2)exec

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

近期状态一直不太好,至于原因.怎么说呢,不好说,总之就是纠结中覆盖着纠结.心思全然不在点上.希望能够借助Python的学习以及博客的撰写来调整回来,有的时候回头想一想.假设真的是我自己的问题呢,曾经我常常跟别人说,千万不要怀疑自己.由于非常清楚一旦连自己都变的不可信.那这个世界就太疯狂了,当一遍一遍的问我,如今连我自己都快怀疑自己了,我一遍一遍的说服别人,想不到如今居然须要自己去说服自己,何其的悲哀~ 一.正則表達式基础 1.基本概念 正則表達式是计算机科学的一个概念.正則表達式使用单个字符串来

Python - 连续替换(replace)的正則表達式(re)

字符串连续替换, 能够连续使用replace, 也能够使用正則表達式. 正則表達式, 通过字典的样式, key为待替换, value为替换成, 进行一次替换就可以. 代码 # -*- coding: utf-8 -*- import re my_str = "(condition1) and --condition2--" print my_str.replace("condition1", "").replace("condition

js正則表達式语法

1. 正則表達式规则 1.1 普通字符 字母.数字.汉字.下划线.以及后边章节中没有特殊定义的标点符号,都是"普通字符".表达式中的普通字符,在匹配一个字符串的时候,匹配与之同样的一个字符. 举例1:表达式 "c",在匹配字符串 "abcde" 时,匹配结果是:成功:匹配到的内容是:"c":匹配到的位置是:開始于2,结束于3.(注:下标从0開始还是从1開始,因当前编程语言的不同而可能不同) 举例2:表达式 "bcd&

正則表達式基本使用方法简单介绍

正則表達式非常实用, 有些书专门用整本书来讲这个, 可见其博大精深. 有人的地方就有江湖. 有字符串的地方就有正則表達式.所谓的正則表達式, 只是是一种模式/形式罢了. 说白了, 就是一个字符串形式. 没那么玄乎其玄. 我们之前介绍过的grep, sed和awk是一种文本/字符串处理工具. 而正則表達式却不同. 它仅仅是一种字符串形式. 我们能够用grep, sed和awk对正則表達式进行处理. 为了方便集中介绍正則表達式, 我们用最简单的grep来做处理工具. 正則表達式也不同于通配符. 虽然

javascript中的正則表達式

对文本数据进行操作是JavaScript中常见的任务.正則表達式通过同意程序猿指定字符串匹配的模式来简化诸如验证表单中输入是否具有正确格式之类的任务. 1.正則表達式标记: 字符 含义 举例 i 大写和小写不敏感 对于模式/http/i  "http" 和"HttP" 一样能够匹配 g 全局匹配.找出所有匹配字符串,而不不过找到第一个就返回. 经常使用于替换 m 多行匹配 2.正則表達式位置指示符:规定模式在它所匹配的字符串里的位置. 字符 含义 举例 ^ 开头 对

经验之谈—正則表達式实现图文混排

在项目中,我们常常须要发表情,以及常常须要将表情字符转换成表情.由于表情是一个图片.所以我们发给server的时候,实际上是发一段特殊的文字给server,然后转换成表情.以免浪费用户过多的流量. 那接下来.我们就来介绍一下,怎样使用正則表達式实现图文混排呢? 为了以后的代码的管理方便,我们抽取出两个类: NSString+Regular.h中.我们暴露两个方法出来: /** * 返回正則表達式匹配的第一个结果 * * @param pattern 正則表達式 * * @return 匹配的第一