#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. 代理ip的使用以及多进程爬取

    一.代理皮的简单使用 简单的看一二例子即可 import requests #代理ip 高频的ip容易被封,所以使用ip代理 #免费代理 ip:www.goubanjia.com 快代理 西祠代理 h ...

  2. java中的线程(4):常用同步类 CountDownLatch、CyclicBarrier和Semaphore

    转自: http://www.cnblogs.com/dolphin0520/p/3920397.html 1.简介 CountDownLatch和CyclicBarrier都能够实现线程之间的等待, ...

  3. PHP CURL_ERRNO 77

    项目中碰到curl https偶尔出现false,错误码77,可以尝试下面两种解决方法: 1.确认安装机器ca-certificates,重启PHP.设置curl_setopt($ch, CURLOP ...

  4. Vue省市区三级联选择器V-Distpicker的使用

    Vue省市区三级联选择器V-Distpicker的使用 最近用的Vue+Element UI时,有些地方需要用到省市区三联选择器,网上安装并尝试了多种类似的插件,但都因为无法正常实现或是没有眼缘而弃用 ...

  5. scala 列表的子集判断

    val list1=List.range(0,5) val list2=List.range(0,2) val list3=List(0,6) list1.contains(2) list1.cont ...

  6. Dubbo解析及原理浅析

    原文链接:https://blog.csdn.net/chao_19/article/details/51764150 一.Duboo基本概念解释 Dubbo是一种分布式服务框架. Webservic ...

  7. unity的技术博客

    技术博客 http://www.cnblogs.com/wangergo/

  8. SpringBoot | 第三十章:Spring-data-jpa的集成和使用

    前言 在前面的第九章:Mybatis-plus的集成和使用章节中,介绍了使用ORM框架mybatis-plus进行数据库的访问.今天,我们来简单学习下如何使用spring-data-jpa进行数据库的 ...

  9. Linux systemd资源控制初探

    Linux systemd资源控制初探 本文记录一次cgroup子目录丢失问题,并简单探索了Linux systemd的资源控制机制. 问题现象 我们希望通过systemd拉起服务并通过cgroup限 ...

  10. SpringSecurity 3.2入门(7)自定义权限控制介绍

    总结Spring Security的使用方法有如下几种: 一种是全部利用配置文件,将用户.权限.资源(url)硬编码在xml文件中. 二种是用户和权限用数据库存储,而资源(url)和权限的对应关系硬编 ...