#coding:utf-8
#/usr/bin/python
"""
2018-11-25
dinghanhua
re
"""
import re
teststr = '"id":"2994925","publisher":"Yahoo Press","isbn10":"0596517742","isbn13":"9780596517748","title":"JavaScript","url":"https:\/\/api.douban.com\/v2\/book\/2994925","alt_title":"","author_intro":"Douglas Crockford is a Senior JavaScript Architect at Yahoo!. He is the maintainer of the JSON format, and a regular speaker at conferences on advanced JavaScript topic. He is also on the JavaScript 2.0 committee at ECMA."'
'''re.match() 从字符串的起始位置匹配 '''
pattern = r'\d+'
print(re.match(pattern,teststr))
pattern = r'"id":"(.*)","publisher'
matchobj = re.match(pattern,teststr)
print(matchobj.group(0))
print(matchobj.groups())
print(matchobj.group(1))
print(matchobj.span())
print(matchobj.start(),matchobj.end())
'''re.search() 返回字符串中第一个匹配的 '''
pattern = r'\d+'
print(re.search(pattern,teststr))
pattern = r'"id":"(.*?)".*"title":"(.*?)"'
matchobj = re.search(pattern,teststr)
print(matchobj.group(0))
print(matchobj.groups())
print(matchobj.group(1,2))
print(matchobj.span())
print(matchobj.start(),matchobj.end())
'''re.sub() 替换匹配项 repl=替换的字符串,count替换几个,默认0替换所有'''
pattern = r'\d+'
teststr2 = re.sub(pattern,repl='',string=teststr,count=1)
print(teststr2) pattern = r'\D+'
teststr2 = re.sub(pattern,"",teststr) #去掉所有非数字
print(teststr2)
'''compile()生成正则表达式对象'''
pattern = re.compile(r'"(\w+)":"(\w+)"')
matchobj = pattern.match(teststr)
print(matchobj.groups())
matchobj = pattern.search(teststr,10,100) #设定起始结束位置
print(matchobj.groups())
'''findall 匹配所有,返回列表'''
pattern = r'"(\w+)":"(\d+)"'
matchlist = re.findall(pattern,teststr)
print(matchlist)
pattern = re.compile(r'"(\w+)":"(\D+)"')
matchlist = pattern.findall(teststr,10)
print(matchlist)
'''re.finditer 匹配所有,返回迭代器'''
pattern = r'"(\w+)":"(\d+)"'
matchiter = re.finditer(pattern,teststr)
print(matchiter)
for m in matchiter:
print(m.groups())
'''re.split() 正则分隔'''
pattern = r'[^a-zA-Z]+' #根据非字母分隔
splitlist = re.split(pattern,teststr)
print(splitlist)

python26 re正则表达式的更多相关文章

  1. python的OS库和正则表达式库

    摘自:http://blog.chinaunix.net/uid-16360955-id-3351990.html 作留存学习 1.常用内置函数:(不用import就可以直接使用) help(obj) ...

  2. JS正则表达式常用总结

    正则表达式的创建 JS正则表达式的创建有两种方式: new RegExp() 和 直接字面量. //使用RegExp对象创建 var regObj = new RegExp("(^\\s+) ...

  3. Python高手之路【五】python基础之正则表达式

    下图列出了Python支持的正则表达式元字符和语法: 字符点:匹配任意一个字符 import re st = 'python' result = re.findall('p.t',st) print( ...

  4. C# 正则表达式大全

    文章导读 正则表达式的本质是使用一系列特殊字符模式,来表示某一类字符串.正则表达式无疑是处理文本最有力的工具,而.NET提供的Regex类实现了验证正则表达式的方法.Regex 类表示不可变(只读)的 ...

  5. C#基础篇 - 正则表达式入门

    1.基本概念 正则表达式(Regular Expression)就是用事先定义好的一些特定字符(元字符)或普通字符.及这些字符的组合,组成一个“规则字符串”,这个“规则字符串”用来判断我们给定的字符串 ...

  6. JavaScript正则表达式,你真的知道?

    一.前言 粗浅的编写正则表达式,是造成性能瓶颈的主要原因.如下: var reg1 = /(A+A+)+B/; var reg2 = /AA+B/; 上述两个正则表达式,匹配效果是一样的,但是,效率就 ...

  7. Python 正则表达式入门(中级篇)

    Python 正则表达式入门(中级篇) 初级篇链接:http://www.cnblogs.com/chuxiuhong/p/5885073.html 上一篇我们说在这一篇里,我们会介绍子表达式,向前向 ...

  8. 【JS基础】正则表达式

    正则表达式的() [] {}有不同的意思. () 是为了提取匹配的字符串.表达式中有几个()就有几个相应的匹配字符串. (\s*)表示连续空格的字符串. []是定义匹配的字符范围.比如 [a-zA-Z ...

  9. JavaScript 正则表达式语法

    定义 JavaScript定义正则表达式有两种方法. 1.RegExp构造函数 var pattern = new RegExp("[bc]at","i"); ...

随机推荐

  1. 日志统计--蓝桥杯--vector

    /* 标题:日志统计 小明维护着一个程序员论坛.现在他收集了一份"点赞"日志,日志共有N行.其中每一行的格式是: ts id 表示在ts时刻编号id的帖子收到一个"赞&q ...

  2. PIE SDK聚类

    1.算法功能简介 聚类处理时运用形态学算子将临近的类似分类区域聚类并合并. PIE SDK支持算法功能的执行,下面对聚类算法功能进行介绍. 2.算法功能实现说明 2.1. 实现步骤 第一步 算法参数设 ...

  3. Python获取当前时间及格式化

    1.导入time模块 # 导入time模块 import time 2.打印时间戳-time.time() # 导入time模块 import time # 打印时间戳 print(time.time ...

  4. 3.CAS原子操作

    什么是原子性操作,按照官方的解析:原子操作不能在一个中间操作中停止,要么全部成功要么全部失败.(An atomic action cannot stop in the middle: it eithe ...

  5. unity文件 PlayerPrefs.SetInt 保存 And PlayerPrefs.GetInt读取

    unity文件保存读取PlayerPrefs.SetInt   And  PlayerPrefs.GetInt using UnityEngine; using System.Collections; ...

  6. Ace教你一步一步做Android新闻客户端(五) 优化Listview

    今天写存货了 调试一些动画参数花了些时间 ,嘿嘿存货不多了就没法做教程了,今天来教大家优化listview,等下我把代码编辑下 这次代码有些多 所以我把条理给大家理清楚.思路就是把加载图片的权利交给O ...

  7. java多态简单例子

    /* 对象的多态性:动物 x = new 猫(); 函数的多态性:函数重载.重写 1.多态的体现 父类的引用指向了自己的子类对象 父类的引用也可以接收自己的对象 2.多态的前提 必须是类与类之间只有关 ...

  8. storm中KafkaSpout的选择

    Storm最常用的消息源就是Kafka,在对接的时候大多需要使用KafkaSpout: 在网上大概有两种KafkaSpout,一种是只有几十行,一种却有一大啪啦类文件. 在kafka中,同一个part ...

  9. Sublime Text加上Eclipse

    打造属于自己的前端开发神器 -- 给Sublime Text加上Eclipse的光环     将Sublime Text打造成如Eclipse一般的前端开发IDE 1. 快捷键移植篇   从Java开 ...

  10. WPF-MVVM学习心德(WinForm转WPF心德)

    接触MVVM接近一段时间了,有一点理解,写下来. 之前是做winform的,工作需要,学习wpf.优缺点就不用说类,网上一大堆.我自己理解的话,有下面几点: 1.首先是界面的xmal和界面分离:wpf ...