大话Python正则表达式

时间:2022-09-07 18:34:19

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正则表达式的更多相关文章

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

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

  2. Python正则表达式中的re.S

    title: Python正则表达式中的re.S date: 2014-12-21 09:55:54 categories: [Python] tags: [正则表达式,python] --- 在Py ...

  3. Python 正则表达式入门(初级篇)

    Python 正则表达式入门(初级篇) 本文主要为没有使用正则表达式经验的新手入门所写. 转载请写明出处 引子 首先说 正则表达式是什么? 正则表达式,又称正规表示式.正规表示法.正规表达式.规则表达 ...

  4. python正则表达式re

    Python正则表达式: re 正则表达式的元字符有. ^ $ * ? { [ ] | ( ).表示任意字符[]用来匹配一个指定的字符类别,所谓的字符类别就是你想匹配的一个字符集,对于字符集中的字符可 ...

  5. Python正则表达式详解

    我用双手成就你的梦想 python正则表达式 ^ 匹配开始 $ 匹配行尾 . 匹配出换行符以外的任何单个字符,使用-m选项允许其匹配换行符也是如此 [...] 匹配括号内任何当个字符(也有或的意思) ...

  6. 比较详细Python正则表达式操作指南(re使用)

    比较详细Python正则表达式操作指南(re使用) Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式.Python 1.5之前版本则是通过 regex 模块提供 E ...

  7. Python正则表达式学习摘要及资料

    摘要 在正则表达式中,如果直接给出字符,就是精确匹配. {m,n}? 对于前一个字符重复 m 到 n 次,并且取尽可能少的情况 在字符串'aaaaaa'中,a{2,4} 会匹配 4 个 a,但 a{2 ...

  8. python正则表达式 小例几则

    会用到的语法 正则字符 释义 举例 + 前面元素至少出现一次 ab+:ab.abbbb 等 * 前面元素出现0次或多次 ab*:a.ab.abb 等 ? 匹配前面的一次或0次 Ab?: A.Ab 等 ...

  9. Python 正则表达式-OK

    Python正则表达式入门 一. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分. 正则表达式是用于处理字符串的强大工具, 拥有自己独特的语法以及一个独立的处理引擎, 效率上 ...

随机推荐

  1. Oracle Sales Cloud:报告和分析(BIEE)小细节2——利用变量和过滤器传参(例如,根据提示展示不同部门的数据)

    在上一篇随笔中,我们建立了部门和子部门的双提示,并将部门和子部门做了关联.那么,本篇随笔我们重点介绍利用建好的双提示进行传参. 在操作之前,我们来看一个报告和分析的具体需求: [1] 两个有关联的提示 ...

  2. Java系列:国际化(zz)

    国际化英文单词为:Internationalization,又称I18N,I为因为单词的第一个字母,18为这个单词的长度,而N代表这个单词的最后一个字母.国际化又称本地化(Localization,L ...

  3. 【kAri OJ】621. 廖神的树

    时间限制 3000 ms 内存限制 65536 KB 题目描述 廖神和男神在植树节的时候准备玩一个奇怪的游戏,他们现在有一个被分割成n*n个格子的矩形土地,他们现在准备往这个地里种树,但这个种树游戏必 ...

  4. Spark History Server配置使用

    Spark history Server产生背景 以standalone运行模式为例,在运行Spark Application的时候,Spark会提供一个WEBUI列出应用程序的运行时信息:但该WEB ...

  5. Oracle查询被锁的表及进程的方法

    Oracle查询可以有多种方法,下面为您介绍的是如何Oracle查询被锁的表及Oracle查询连接的进程的方法,希望对您能够有所帮助. 一.查看被锁的表 select p.spid,a.serial# ...

  6. Linux的分段和分页机制

    1.分段机制 80386的两种工作模式  80386的工作模式包括实地址模式和虚地址模式(保护模式).Linux主要工作在保护模式下. 分段机制  在保护模式下,80386虚地址空间可达16K个段,每 ...

  7. Libgdx Box2D真实---这缓释微丸(三:规则经常使用body和精灵联合)

    介绍规则body怎样和图片结合.上一篇文章我介绍了box2D的基本知识,假设你用心的话.你会搜索网上相关简单demo吧.那些我就不写了.那么假设我用图片表示我的那个body.而不是简单线条.那该怎么办 ...

  8. Android Bundle类别

    即使在今天发现自己Bundle类不明确,因此,花时间去研究了一下. 依据google官方文件(http://developer.android.com/reference/android/os/Bun ...

  9. linux随机字符串

    pwgen  -s 32 1 openssl passwd -salt openssl rand -base64 32 openssl rand -hex 100

  10. Maven将依赖包、jar/war包及配置文件输出到指定目录

    使用Maven插件将依赖包 jar包 war包及配置文件输出到指定目录 写在前面 ​ 最近遇到一个朋友遇到一个项目需要将 maven 的依赖包和配置文件分开打包然后用脚本执行程序.这样的好处在于可以随 ...