python中使用正则表达式的后向搜索肯定模式(推荐)

正则表达式并不是Python的一部分。正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十分强大。得益于这一点,在提供了正则表达式的语言里,正则表达式的语法都是一样的,区别只在于不同的编程语言实现支持的语法数量不同;但不用担心,不被支持的语法通常是不常用的部分。

在前面学习了比较多模式,有前向搜索的,也有后向搜索的,有肯定模式的,也有否定模式的。这次再来学习一个,就是后向搜索肯定模式,意思就是说已经扫描过了的字符串,还想后悔去看一下,是否可以匹配。

它的语法是:(?<=pattern)。比如下面的例子,就是用来识别Twitter的账号,但它这种模式只会匹配,不会出现在匹配的字符串中,如下:

#python 3.6
#蔡军生
#http://blog.csdn.net/caimouse/article/details/51749579
#
import re
twitter = re.compile(
  '''
  # A twitter handle: @username
  (?<=@)
  ([\w\d_]+)    # username
  ''',
  re.VERBOSE)
text = '''This text includes two Twitter handles.
One for @caimouse, and one for the author, @caijunsheng.
'''
print(text)
for match in twitter.findall(text):
  print('Handle:', match)

结果输出如下:

 This text includes two Twitter handles.
One for @caimouse, and one for the author, @caijunsheng.
Handle: caimouse
Handle: caijunsheng

总结

以上所述是小编给大家介绍的python中使用正则表达式的后向搜索肯定模式,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

(0)

相关推荐

  • python中使用正则表达式的后向搜索肯定模式(推荐)

    正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十分强大.得益于这一点,在提供了正则表达式的语言里,正则表达式的语法都是一样的,区别只在于不同的编程语言实现支持的语法数量不同:但不用担心,不被支持的语法通常是不常用的部分. 在前面学习了比较多模式,有前向搜索的,也有后向搜索的,有肯定模式的,也有否定模式的.这次再来学习一个,就是后向搜索肯定模式,意思就是说已经扫描过了的字符串,还想后悔去看

  • python中如何使用正则表达式的非贪婪模式示例

    前言 本文主要给大家介绍了关于python使用正则表达式的非贪婪模式的相关内容,分享出来供大家参考学习,下面话不多说了,来一起详细的介绍吧. 在正则表达式里,什么是正则表达式的贪婪与非贪婪匹配 如:String str="abcaxc"; Patter p="ab*c"; 贪婪匹配:正则表达式一般趋向于最大长度匹配,也就是所谓的贪婪匹配.如上面使用模式p匹配字符串str,结果就是匹配到:abcaxc(ab*c). 非贪婪匹配:就是匹配到结果就好,就少的匹配字符.如上

  • 详解Python里使用正则表达式的ASCII模式

    ASCII ASCII(American Standard Code for Information Interchange),是一种单字节的编码.计算机世界里一开始只有英文,而单字节可以表示256个不同的字符,可以表示所有的英文字符和许多的控制符号.不过ASCII只用到了其中的一半(\x80以下),这也是MBCS得以实现的基础. 目前,基本上都使用python3来开发了,但是有时为了兼容旧的python2的代码,在正则表达式里主要是字符串的表示方式不同了,在python3里是使用Unicode

  • python如何使用正则表达式的前向、后向搜索及前向搜索否定模式详解

    前言 在许多的情况下,很多要匹配内容是一起出现,或者一起不出现的.比如<>,< >,这样的括号,不存在使用半个的情况.因此,在正则表达式里也有一致性的判断,要么两个尖括号一起出现,要么一个也不要出现.怎么样来实现这种判断呢?针对这种情况得引入新的正则表达式的语法:(?=pattern),这个语法它会向前搜索或者向后搜索相关内容,如果不会出现就不能匹配.不过,这个匹配不会消耗任何输入的字符,它只是查看一下. 例子如下: #python 3.6 #蔡军生 #http://blog.cs

  • python中如何正确使用正则表达式的详细模式(Verbose mode expression)

    简单介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十分强大.得益于这一点,在提供了正则表达式的语言里,正则表达式的语法都是一样的,区别只在于不同的编程语言实现支持的语法数量不同:但不用担心,不被支持的语法通常是不常用的部分.如果已经在其他语言里使用过正则表达式,只需要简单看一看就可以上手了. 下图展示了使用正则表达式进行匹配的流程: 正则表达式的大致匹配过程是:依次拿出表达式和文本

  • Python中的正则表达式与JSON数据交换格式

    一.初识正则表达式 正则表达式 是一个特殊的字符序列,一个字符串是否与我们所设定的这样的字符序列,相匹配快速检索文本.实现替换文本的操作 json(xml) 轻量级 web 数据交换格式 import re a='C|C++|Java|C#||Python|Javascript' r= re.findall('Python',a) print(r) if len(r) > 0: print('字符串中包含Python') else: print('No') ['Python'] 字符串中包含Py

  • 详解Python中的正则表达式

    一.正则表达式简介 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配. Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式. 就其本质而言,正则表达式(或 RE)是一种小型的.高度专业化的编程语言, (在Python中)它内嵌在Python中,并通过 re 模块实现.正则表达式模式被 编译成一系列的字节码,然后由用 C 编写的匹配引擎执行. re 模块使 Python 语言拥有全部的正则表达式功能. compile 函数根据一个模

  • python中使用正则表达式将所有符合条件的字段全部提取出来

    问题如标题,使用正则表达式匹配字段目前无非就三种,分别是: re.match() re.search() re.findall() 简单介绍一下,re.match()与re.search()非常类似,主要区别就是前者是从目标字符串的开头匹配,而后者则要没有这个要求.而re.findall()则是可以返回匹配的所有结果.但是有时候re.findall()返回的结果和前面两个并不一样,我们来看下面一个例子: 对于句子: 起病以来,患者无腰背痛.颈痛,无咽痛.口腔溃疡,无光过敏.脱发,无口干.眼干,无

  • 浅谈Python中的正则表达式

    Python里的正则表达式 Python里的正则表达式,无需下载外部模块,只需要引入自带模块:re: import re 官方re模块文档: https://docs.python.org/zh-cn/3.9/library/re.html 同时,Python的正则表达式是PCRE标准的,相较于广泛应用在Unix上的POSIX标准,还是有些区别的(主要是简化) 基本方法 观察re源码,其主要的接口方法有: match(-):从字符串的起始位置匹配一个模式,如果无法匹配成功,则match()就返回

  • 在python中使用正则表达式查找可嵌套字符串组

    在网上看到一个小需求,需要用正则表达式来处理.原需求如下: 找出文本中包含"因为--所以"的句子,并以两个词为中心对齐输出前后3个字,中间全输出,如果"因为"和"所以"中间还存在"因为""所以",也要找出来,另算一行,输出格式为: 行号 前面3个字 *因为* 全部 &所以& 后面3个字(标点符号算一个字) 2 还不是 *因为* 这里好, &所以& 没有人 实现方法如下: #e

  • 进一步探究Python中的正则表达式

    字符串是编程时涉及到的最多的一种数据结构,对字符串进行操作的需求几乎无处不在.比如判断一个字符串是否是合法的Email地址,虽然可以编程提取@前后的子串,再分别判断是否是单词和域名,但这样做不但麻烦,而且代码难以复用. 正则表达式是一种用来匹配字符串的强有力的武器.它的设计思想是用一种描述性的语言来给字符串定义一个规则,凡是符合规则的字符串,我们就认为它"匹配"了,否则,该字符串就是不合法的. 所以我们判断一个字符串是否是合法的Email的方法是: 创建一个匹配Email的正则表达式:

  • python中使用正则表达式的方法详解

    目录 search(pattern, string, flags=0) findall(pattern, string, flags=0) sub(pattern, repl, string, count=0, flags=0) compile(pattern, flags=0) flags的一些常用值 总结 在python中使用正则表达式,主要通过下面的几个方法 search(pattern, string, flags=0) 扫描整个string并返回匹配pattern的结果(None或对象

  • python中对正则表达式re包的简单引用方式

    目录 对正则表达式re包的简单引用 一.re.match(pattern,string,flags=0) 二.re.search(pattern,string,flags=0) 三.检索和替换 re.sub() 四.正则表达式之命名捕获 re库的正确使用姿势 Why 使用姿势 应用举例 对正则表达式re包的简单引用 正则表达式一直是被我所忽略的东西,因为在之前的学习和开发中基本很少用到它.而且,之前学习正则表达式时感觉很懵逼,所以毅然决然的放弃了(QAQ),然而出来混总归还是要还的.最近在弄日志

  • 浅谈python中的正则表达式(re模块)

    一.简介 正则表达式本身是一种小型的.高度专业化的编程语言,而在python中,通过内嵌集成re模块,程序媛们可以直接调用来实现正则匹配.正则表达式模式被编译成一系列的字节码,然后由用C编写的匹配引擎执行. 二.正则表达式中常用的字符含义 1.普通字符和11个元字符: 普通字符 匹配自身 abc abc . 匹配任意除换行符"\n"外的字符(在DOTALL模式中也能匹配换行符 a.c abc \ 转义字符,使后一个字符改变原来的意思 a\.c;a\\c a.c;a\c * 匹配前一个字

随机推荐