1.“字符*” 匹配*前面的字符0次或者多次

注意:是匹配*前一个字符,只能是*前一个字符多次打印出来。*前面其他的字符相当于前缀会打印出来,但是不会再匹配。

*前一个字符前面的其他字符里的首字符先遇到会直接停下来,不去寻找其他的字符。

print(re.search("rt*","rrtbbbbrbrbreyrtrr"))
# <_sre.SRE_Match object; span=(0, 1), match='r'>  
print(re.findall("r*","tyrrreyrtrr"))
print(re.search("r*","ureyrtrr")) # ['', '', 'rrr', '', '', 'r', '', 'rr', '']
# <_sre.SRE_Match object; span=(0, 0), match=''>
print(re.search("r*","rrrreyrtrr"))

# <_sre.SRE_Match object; span=(0, 4), match='rrrr'>

2.“+”  匹配一个或多个字符。

print(re.search(".+","rbbbbrbrbreyrtrr"))        #可以利用·+输出所有字符
print(re.search(".","rbbbbrbrbreyrtrr"))
print(re.search("b+","rbbbbrbrbreyrtrr"))
print(re.search("ab+","rbbabbrbrbreyrtrr")) # <_sre.SRE_Match object; span=(0, 16), match='rbbbbrbrbreyrtrr'>
# <_sre.SRE_Match object; span=(0, 1), match='r'>
# <_sre.SRE_Match object; span=(1, 5), match='bbbb'>
# <_sre.SRE_Match object; span=(3, 6), match='abb'>

当 +前面有多个字符时和 *区别,如下

print(re.search("ab+","rbbaaaabbrbrbreyrtrr"))    #一直找到ab
print(re.search("ab*","rbbaaaabbrbrbreyrtrr"))    #遇a即停 # <_sre.SRE_Match object; span=(6, 9), match='abb'>
# <_sre.SRE_Match object; span=(3, 4), match='a'>

3.“?”  匹配一次或0次

print(re.search("ab?","abbbaaaabbrbrbreyrtrr"))
# <_sre.SRE_Match object; span=(0, 2), match='ab'>

4.“字符{m}”  匹配前面的字符m次

print(re.search("[a-z]{2}","abbbaaaabbrbrbreyrtrr"))
# <_sre.SRE_Match object; span=(0, 2), match='ab'>

5.“{n-m}”  匹配前面的字符n-m次

print(re.search("[a-b]{2,5}","tabbvbtaaaabbrbrbreyrtrr"))
# <_sre.SRE_Match object; span=(1, 4), match='abb'>

6.“|”  或,满足其中一个即可匹配。

print(re.search("[a|A]lex","alex"))
print(re.search("[a|A]lex","Alex")) # <_sre.SRE_Match object; span=(0, 4), match='alex'>
# <_sre.SRE_Match object; span=(0, 4), match='Alex'>
print(re.search("[a|A]{2}","aalaex"))   #输出aa

  

  

  

  

  

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

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

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

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

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

  3. C# 正则表达式大全

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

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

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

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

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

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

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

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

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

  8. JavaScript 正则表达式语法

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

  9. [jquery]jquery正则表达式验证(手机号、身份证号、中文名称)

    数字判断方法:isNaN()函数 test()方法 判断字符串中是否匹配到正则表达式内容,返回的是boolean值 ( true / false ) // 验证中文名称 function isChin ...

  10. JS中给正则表达式加变量

    前不久同事询问我js里面怎么给正则中添加变量的问题,遂写篇博客记录下.   一.字面量 其实当我们定义一个字符串,一个数组,一个对象等等的时候,我们习惯用字面量来定义,例如: var s = &quo ...

随机推荐

  1. noip2016前的话[漫谈]

    今天是11月15日,离noip2016还剩三天: 今年我也是高二了,回首一下去年的时光,真的仿佛仍在昨天,我甚至现在还清楚的记得,当年那次我们做的每一件事: 星期五,回去与室友告别,得到了祝愿,乘公交 ...

  2. lock的两种方式

    假设现在我们有100个数据项可以读写.有若干个线程,任何一个线程可能对任何一个数据项尽心读写. 但是,如果不同的线程在对同一个数据项进行读写,就可能发生错误.需要使用lock进行控制. 比如线程x要对 ...

  3. Opencv中视频播放与进度控制

    视频画面本质上是由一帧一帧的连续图像组成的,播放视频其实就是在播放窗口把一系列连续图像按一定的时间间隔一幅幅贴上去实现的. 人眼在连续图像的刷新最少达到每秒24帧的时候,就分辨不出来图像间的闪动了,使 ...

  4. HNOI2008 越狱 (组合数学)

    传送门 应该是HNOI2008年最简单的一道题了吧……简单的组合数题,不过要换个思路. 我们直接考虑发生越狱的情况似乎有点复杂,那我们换个思路,考虑不发生越狱的情况,也就是两个有相同宗教的人不会坐在一 ...

  5. 用 SDL2 平铺背景并显示前景

    环境:SDL2 + VC++2015 下面的代码将打开background.bmp和image.bmp,将background平铺背景,将image作为前景呈现 #include <iostre ...

  6. ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 06. Controller 返回View

    Controller父类会提供很多上下文的相关信息,还提供了很多封装的方法 返回的对象要求实现了IActionResult接口 继承父类,并引入命名空间 写this点就出现很多东西,这些就是上下文的信 ...

  7. [技术分享]借用UAC完成的提权思路分享

    借用UAC完成的提权思路分享 背景 UAC(User Account Control,用户帐户控制)是微软为提高系统安全而在Windows Vista中引入的新技术,它要求用户在执行可能会影响计算机运 ...

  8. python 生成器 generator

    一.生成器定义 通过列表生成表达式,我们可以直接创建一个列表.但是,受到内存限制,列表容量肯定是有限的.所以,如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算出后续的元素呢? ...

  9. AGC031 A~C

    A题意:给定字符串s,求无重复字符子序列个数(子序列相同位置不同算不同) 在最后加一串a~z表示选了这些就是不选这个字符了,然后答案就是每次选每个字符位置的方案数的积 #include<iost ...

  10. bzoj 3613: [Heoi2014]南园满地堆轻絮【二分+贪心】

    二分答案w,然后判断的时候维护一个mx,扫描序列,先更新mx=max(mx,a[i]-w),然后如果a[i]+w<mx的话就是说这个位置即使升到极限并且前面降到极限也不能符合条件了 #inclu ...