一:什么是正则?

 正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法。或者说:正则就是用来描述一类事物的规则。

(在Python中)它内嵌在Python中,并通过 re 模块实现。正则表达式模式被编译成一系列的字节码,然后由用 C 编写的匹配引擎执行。

.代表任意字符:print(re.findall('h...o$','egon 123 + _ - *hello'))

?代表?左边的字符出现0次或者1 :print(re.findall('ab?','a ab abb abbbb a1b'))

*代表*号左边的字符出现0次或者无穷次:print(re.findall('ab*','a ab abb abbbb a1b'))

+代表+号左边的字符出现1次或者无穷次:print(re.findall('ab+','a ab abb abbbb a1b'))

{m,n}代表左边的字符出现m次到n次::print(re.findall('ab{0,1}','a ab abb abbbb a1b'))无穷次可不写n

.*代表贪婪匹配:print(re.findall('a.*b','xxxxxxy123a123b456b'))

.*?代表非贪婪匹配:print(re.findall('a.*?b','xxxxxxy123a123b456b'))

|代表或者:#默认留组中的内容 print(re.findall('compan(y|iess)','Too many companiess have gone bankrupt, and the next one is my company'))

#:?匹配成功后不留组中取到的内容留取到的全部内容print(re.findall('compan(?:y|iess)','Too many companiess have gone bankrupt, and the next one is my company'))

[]代表取中括号内任意的一个:print(re.findall('a[a-z]b','axb azb aAb alb a-b a+b'))中括号中开头加^表示取反

二:re模块的其他方法:

re.search:只匹配成功一次就返回print(re.search('a[^-+*/]b','axb azb aAb a1b a-b a+b').group())

re.match:从开头取,且只匹配一次,取不到返回None:print(re.match('a[0-9]b','axb azb aAb a1b a-b a+b'))

re.split:实现切割:print(re.split(':','root:x:0:0::/root:/bin/bash',maxsplit=1))

re.sub代表替换:print(re.sub('root','admin','root:x:0:0::/root:/bin/bash',1))

re.compile:obj=re.compile('a\d{2}b') print(obj.findall('a12b a123b a12345b abbb'))

python基础-re正则的更多相关文章

  1. python基础知识---正则

    一.python正则简介 python的re模块,让python能够支持perl正则 perl正则的字符集("."  "[abc]"   "(abc) ...

  2. Python基础-re正则模块

    一.简介: 正则表达式:是一种小型的.高度专业化的编程语言,(在Python中)它内嵌在Python中,并通过re模块实现,正则表达式模式被编译成一系列的字节码,然后由用C编写的匹配引擎执行. 二.字 ...

  3. Python 基础之正则之二 匹配分组,正则相关函数及表达式修饰符

    四.匹配分组   [元字符] 分组符号 a|b   匹配字符a 或 字符b  (如果两个当中有重合部分,把更长的那个放前面) (ab)   匹配括号内的表达式 ,将()作为一个分组 num  引用分组 ...

  4. Python 基础之正则之一 单字符,多字符匹配及开头结尾匹配

    一.正则表达式之单个字符匹配 格式:lst = re.findall(正则表达式,要匹配的字符串)预定义字符集 匹配内容 .匹配任意字符,除了换行符\n \d匹配数字 \D匹配非数字 \w匹配字母或数 ...

  5. Python基础教程【读书笔记】 - 2016/7/31

    希望通过博客园持续的更新,分享和记录Python基础知识到高级应用的点点滴滴! 第十波:第10章  充电时刻 Python语言的核心非常强大,同时还提供了更多值得一试的工具.Python的标准安装包括 ...

  6. python基础教程笔记—即时标记(详解)

    最近一直在学习python,语法部分差不多看完了,想写一写python基础教程后面的第一个项目.因为我在网上看到的别人的博客讲解都并不是特别详细,仅仅是贴一下代码,书上内容照搬一下,对于当时刚学习py ...

  7. Python基础-week05

    本节大纲:Author:http://www.cnblogs.com/Jame-mei 模块介绍 time & datetime模块 random os sys shutil json &am ...

  8. python基础篇实战

    1. 判断下面的结果 # 1. 判断下面的结果 # 1 > 1 or 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6 pri ...

  9. Python基础(协程函数、内置函数、递归、模块和包)-day05

    写在前面 上课第五天,打卡: 凭着爱,再回首: 一.协程函数(生成器:yield的表达式形式) 1.yield 的语句形式: yield 1 - 这种方式在 Python基础(函数部分)-day04  ...

随机推荐

  1. case in

    #!/bin/bash source /etc/profilesource ~/.bashrc #自己定义$version_number case $version_number in3.0.17) ...

  2. MySQL架构和索引

    MySQL架构 逻辑架构图: 大概分为四层,这个见仁见义,有不同的分法: 第一层Connectors:处理不同语言与SQL的交互 第二层Connection Pool :连接池,管理缓存用户连接,线程 ...

  3. 后缀自动机XJ

    后缀自动机初探(xiajiang) 后缀树\((Suffix Tree)\) 对于一个字符串,把它的所有后缀插入到\(Trie\)中就是一个后缀树. 当然字母存在边上,最终的点可以用一个特殊符号如:\ ...

  4. cookie的设置与销毁

    <?php /* 2个参数设置cookie cookie随着浏览器的关闭,就失效了 ); /* 下面我们让cookir多活一会 3个参数来设置cookie,第3个参数指的就是cookie的声明周 ...

  5. VS2010-MFC(常用控件:树形控件Tree Control 下)

    转自:http://www.jizhuomi.com/software/203.html 前面一节讲了树形控件Tree Control的简介.通知消息以及相关数据结构,本节继续讲下半部分,包括树形控件 ...

  6. Java之RabbitMQ(二)多mq配置

    场景: springboot单项目,自身使用mq中间件处理一些业务需求,某些业务上又需要消费第三方mq消息,这时候需要我们单项目中配置多套mq,这时候,需要我们自定义多套mq相关连接工厂.模板.监听工 ...

  7. java笔试之简单密码

    密码是我们生活中非常重要的东东,我们的那么一点不能说的秘密就全靠它了.哇哈哈. 接下来渊子要在密码之上再加一套密码,虽然简单但也安全. 假设渊子原来一个BBS上的密码为zvbo9441987,为了方便 ...

  8. 用星星画菱形--Java

    用星星画菱形 public class Hello{ public static void main(String[] args) { char star = '\u2605'; System.out ...

  9. Django问题2

    接触django是从上个月开始,学习python时间也不长,但我经常在社区看看别人发表的文章,早上看到一篇不错的博客,却一直不能访 问,最终从bing的缓存里找到,因为害怕丢失和忘掉,所以顺便翻译过来 ...

  10. Java jmx的使用

    JMX Java Management Extensions,Java管理扩展.本质就是用来监控java语言开发的程序,一般常用于jconsole,java visual VM的监控,今天主要介绍ja ...