美文网首页每天写500字每天写1000字
python 23:正则表达式中问号的两种用法

python 23:正则表达式中问号的两种用法

作者: 金石明镜 | 来源:发表于2019-11-30 21:17 被阅读0次

正则表达式的元字符?,有两种用法。

第一种,表示前面的项是可选项,可有可无,就是匹配零到一次。

第二种,用在花括号后面,表示非贪心匹配。

当?用在花括号后面时,就不是第一种意义。不是表示花括号可有可无,而是表示非贪心匹配。

例1:

以下的正则表达式匹配one和done

>>> batRegex = re.compile(r'd?one')

>>> mo=batRegex.search('my one yes')

>>> mo.group()

'one'

>>> mo=batRegex.search('done yes')

>>> mo.group()

'done'

例2:

?前面也可以是圆括号界定的项。

>>>phoneRegex = re.compile(r'(\d\d\d-)?\d\d\d-\d\d\d\d')

>>>mo1 = phoneRegex.search('My number is 415-555-4242')

>>>mo1.group()

’415-555-4242‘

>>>mo2 = phoneRegex.search('My number is 555-4242')

>>>mo2.group()

'555-4242'

例3:

在字符串'HaHaHaHaHa1中,因为(Ha){3,5}可以匹配3个、4个或5个实例,Match对象的group()调用会返回'HaHaHaHaHa',而不是更短的可能结果。毕 竟,'HaHaHa'和'HaHaHaHa'也能够有效地匹配正则表达式(Ha){3,5}。

Python的正则表达式默认是“贪心”的,这表示在有二义的情况下,它们会尽可能匹配最长的字符串。花括号的“非贪心”版本匹配尽可能最短的字符串,即在结束的花括号后跟着一个问号。

>>>greedyHaRegex = re.compile(r'(Ha){3,5}')

>>>mo1 = greedyHaRegex.search('HaHaHaHaHa')

>>>mo1.group()

'HaHaHaHaHa'

>>>nongreedyHaRegex = re.compile(r'(Ha){3,5}?')

>>>mo2 = nongreedyHaRegex.search('HaHaHaHaHa')

>>>mo2.group()

'HaHaHa'

相关文章

  • python 23:正则表达式中问号的两种用法

    正则表达式的元字符?,有两种用法。 第一种,表示前面的项是可选项,可有可无,就是匹配零到一次。 第二种,用在花括号...

  • python正则表达式浅析

    简单记录下python下正则表达式的用法,加深对正则表达式用法的记忆,方便以后爬虫本文选取了莫烦python中我觉...

  • python正则表达式详解

    #首先,python中的正则表达式大致分为以下几部分: 元字符 模式 函数 re 内置对象用法 分组用法 环视用法...

  • Python正则表达式用法详解

    搞懂Python 正则表达式用法 Python 正则表达式 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一...

  • NodeJS正则表达式中问号的用法

    【转】https://blog.csdn.net/handsomexiaominge/article/detail...

  • Python的面向对象和正则表达式

    原文地址: Python的面向对象和正则表达式 之前的几篇文章主要介绍了Python中的一些数据类型和主要函数用法...

  • Python正则表达式

    为学习Python中正则表达式的用法,通读了["Regular Expression HOWTO"]: https...

  • 正则表达式 For Python

    正则表达式有很多流派,也有很多的特性,不同的语言支持度也是不一样的。本篇文章是写Python中的正则表达式的用法的...

  • 零零杂杂的学习记录

    使用re正则表达式匹配时的错误 出错的主要原因是因为: Python中append与extend的用法区别 app...

  • 正则表达式

    本文主要讲正则表达式的基本用法 python中导入模块:import re 【1】字符:^ . * $ ^表示...

网友评论

    本文标题:python 23:正则表达式中问号的两种用法

    本文链接:https://www.haomeiwen.com/subject/dmrawctx.html