大话Python正则表达式
python的正则表达式模块re
import re
match_object=re.compile(r"")
result=re.match(match_object,"resource string")
result=re.search(match_object,"resource string")
result=re.findall(match_object,"resource string") # 注意区别
match_object.match("resource string").group()
match_object.search("resource string").group()
match_object.findall("resource string") #上下两种方式任选一种,findall是返回列表
print result.group()
match()与search()的区别:
match是从源字符串的头部开始,仅当从第一个字符开始匹配成功,才能从字符串中匹配到目标字符串
search是从源字符串任意位置开始匹配
match和search的共同点是一旦匹配成功就返回,因而只会从源字符串中成功匹配一个目标字符串
findall 是将源字符串中的所有匹配的目标字符串,以列表的形式返回
match_object=re.compile(r"") # r 表示原字符串,比如存在"\"字符时,"\"不再表示转义的意思,而是 保持本身作为一个普通字符串的含义
"\"用在字符串中的意思是转义,例如"\\n"不再表示换行符,而是普通字符"\n"
print "\n" #输出换行 print "\\n"
\n #输出普通字符,没有换行意思
print r"\n"
\n #输出普通字符,没有换行意思
print r"\\n"
\\n #输出普通字符
match_object=re.compile(r"")
匹配目标,正则表达式定义:
"\d{}" "\d"匹配数字,"{}"表示匹配的个数,{5}匹配5个,{1,}至少匹配1个,{3,8}匹配3至8个;
"^" 以什么开始
"$" 以什么结束
"[0-9a-z]" 匹配[]中包含的一个字符
"[^0-9]" 表示匹配非数字的字符串,"^"用在[]里面不再表示以什么开始,而是表示非
"你|我|他" "|"表示"或"的意思
"?" 表示匹配次数要么为0,要么为1
"*" 表示匹配任一次数,即是0次或0次以上
"+"表示至少匹配一次
"*?" 表示非贪婪匹配 即是尽可能少的匹配
p = re.compile(r'woyouy*?')
result = re.match(p, 'woyouyyyyyyy')
print result.group()
woyou
"." 通配符,可以表示除换行以外的所有字符,如果加上re.DOTALL,使"."什么都可以匹配,还有re.IGNORECASE,re.VERBOSE
re.VERBOSE 可以排除注释和空白字符
p = re.compile(r'good.haha', re.DOTALL)
result = re.findall(p, 'good\nhaha')
print result
['good\nhaha'] p = re.compile(r'good.haha', re.IGNORECASE | re.DOTALL)
result = re.findall(p, 'GOOD\nHahA')
print result
['GOOD\nHahA'] p = re.compile(r'''
\w+. # asdf
\w+''' #
,re.IGNORECASE | re.DOTALL | re.VERBOSE)
result = re.findall(p, 'GOOD\nHahA')
print result
['GOOD\nHahA']
"\w" 表示匹配单词,它是包括数字的
"\s" 表示匹配空白/换行/制表符
分割字符串:
p = re.compile(r'\d+')
result = re.split(p, 'tom32jerry456haha')
print result
['tom', 'jerry', 'haha']
替换字符串:
p = re.compile(r'\d+')
result = re.sub(p, 'replace', 'tom32jerry456haha')
print result
tomreplacejerryreplacehaha
大话Python正则表达式的更多相关文章
- Python 正则表达式入门(中级篇)
Python 正则表达式入门(中级篇) 初级篇链接:http://www.cnblogs.com/chuxiuhong/p/5885073.html 上一篇我们说在这一篇里,我们会介绍子表达式,向前向 ...
- Python正则表达式中的re.S
title: Python正则表达式中的re.S date: 2014-12-21 09:55:54 categories: [Python] tags: [正则表达式,python] --- 在Py ...
- Python 正则表达式入门(初级篇)
Python 正则表达式入门(初级篇) 本文主要为没有使用正则表达式经验的新手入门所写. 转载请写明出处 引子 首先说 正则表达式是什么? 正则表达式,又称正规表示式.正规表示法.正规表达式.规则表达 ...
- python正则表达式re
Python正则表达式: re 正则表达式的元字符有. ^ $ * ? { [ ] | ( ).表示任意字符[]用来匹配一个指定的字符类别,所谓的字符类别就是你想匹配的一个字符集,对于字符集中的字符可 ...
- Python正则表达式详解
我用双手成就你的梦想 python正则表达式 ^ 匹配开始 $ 匹配行尾 . 匹配出换行符以外的任何单个字符,使用-m选项允许其匹配换行符也是如此 [...] 匹配括号内任何当个字符(也有或的意思) ...
- 比较详细Python正则表达式操作指南(re使用)
比较详细Python正则表达式操作指南(re使用) Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式.Python 1.5之前版本则是通过 regex 模块提供 E ...
- Python正则表达式学习摘要及资料
摘要 在正则表达式中,如果直接给出字符,就是精确匹配. {m,n}? 对于前一个字符重复 m 到 n 次,并且取尽可能少的情况 在字符串'aaaaaa'中,a{2,4} 会匹配 4 个 a,但 a{2 ...
- python正则表达式 小例几则
会用到的语法 正则字符 释义 举例 + 前面元素至少出现一次 ab+:ab.abbbb 等 * 前面元素出现0次或多次 ab*:a.ab.abb 等 ? 匹配前面的一次或0次 Ab?: A.Ab 等 ...
- Python 正则表达式-OK
Python正则表达式入门 一. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分. 正则表达式是用于处理字符串的强大工具, 拥有自己独特的语法以及一个独立的处理引擎, 效率上 ...
随机推荐
- [ABP实战开源项目]---ABP实时服务-通知系统.发布模式
简介 在ABP中,提供了通知服务.它是一个基于实时通知的基础设施.分为订阅模式和发布模式. 本次会在项目中使用发布模式来演示一个用户注册后,收到的欢迎信息. 发布模式 首先我们在领域层建立" ...
- ASP.NET MVC知识点总结
一直都有把MVC的知识点总结出来的打算,今日终于得偿所愿.话不多说,开工!!! 一· MVC MVC设计模式->MVC框架(前端开发框架),asp.net(webform) aspx M:Mo ...
- FileZilla可以连接但是传输文件失败
在linux本地创建文件夹后,用FileZilla传输文件失败了. 如果用的是普通用户,创建的文件夹是属于root用户.所以不能传输,没有权限. 修改权限:sudo chown -R lishengn ...
- 第三章 霍夫变换(Hough Transform)
主要内容: 霍夫变换的作用 霍夫变换检测直线的原理 霍夫变换检测圆的原理 OpenCV中的霍夫变换 1.霍夫变换检测直线原理 霍夫变换,英文名称Hough Transform,作用是用来检测图像中的直 ...
- Tomcat--各个目录详解(二)
Tomcat整体目录: 一.bin文件(存放启动和关闭tomcat脚本) 其中.bat和.sh文件很多都是成对出现的,作用是一样的,一个是Windows的,一个是Linux. ① startup文件: ...
- git常用命令记录
配置本地仓库 git config --global user.name.git config --global user.email 查看配置详情 git config -l 初始仓库 git in ...
- 使用Linux的alternatives命令替换选择软件的版本
上周在安装搜索引擎Elasticsearch时,要求安装比较新的java 版本,我选择了java 1.8.0,安装java 成功后使用java -version 发现使用的版本仍旧是1.6.0, 查询 ...
- MacBook使用之配置jdk&Eclipse
查看系统版本:关于本机-软件-查看当前版本信息 打开另一个Finder的快捷键:Command + n 终端命令:Finder - 使用工具 - 终端命令 配置jdk系统变量: cd ~ touch ...
- TP框架 增删查
TP框架添加数据到数据库1.使用数组方式添加造模型对象 2.使用AR方式 强类型语言存在的方式 3.使用自动收集表单添加 :只能用POST方式,提交数据一个操作方法实现两个逻辑:A显示页面B得到数据 ...
- Flume简介及安装
Hadoop业务的大致开发流程以及Flume在业务中的地位: 从Hadoop的业务开发流程图中可以看出,在大数据的业务处理过程中,对于数据的采集是十分重要的一步,也是不可避免的一步,从而引出我们本文的 ...