`
flysnowxf
  • 浏览: 578778 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

正则问号的非贪婪模式

阅读更多

问号跟在表示重复的元字符(*, +, ?, {n}, {n,}, {n,m}) 后面时,表示进入非贪婪模式,要求匹配的字符串越短越好。例如:(*?)

例子:

<message>123</message>

<message>456</message>

<message>abc</message>

如何匹配<message></message>

如果正则为<message>.*</message>,那么它会进行贪婪匹配:

<message>123</message>

<message>456</message>

<message>abc</message>

显然是不对的。

使用问号解决,修改正则为<message>.*?</message>,使用非贪婪模式,这样结果才正确:

<message>123</message>

<message>456</message>

<message>abc</message>

 

参考:http://hi.baidu.com/zhumq92/blog/item/1119e70615fff5ca7b89475b.html

0
0
分享到:
评论

相关推荐

    正则表达式——贪婪非贪婪模式.rar

    在这其中,正则表达式的贪婪模式与非贪婪模式是两个关键的概念,它们决定了正则表达式如何处理连续重复的字符或字符集。深入理解这两种模式的差异,对于编写高效且准确的正则表达式至关重要。 首先,让我们探讨贪婪...

    php正则表达式中的非贪婪模式匹配

    而在正则表达式的众多特性中,贪婪与非贪婪模式是理解并正确应用正则表达式的关键之一。 #### 一、贪婪模式与非贪婪模式的概念 1. **贪婪模式**:默认情况下,正则表达式采用的是贪婪模式,即尽可能多地匹配字符。...

    正则基础之——贪婪与非贪婪模式 .rar

    在正则表达式的世界里,贪婪与非贪婪模式是两种重要的匹配策略,它们决定了正则表达式在查找匹配时的行为。这两个概念对于任何想要深入理解正则表达式的开发者来说至关重要。 首先,我们来理解一下“贪婪”模式。...

    JS正则表达式学习之贪婪和非贪婪模式实例总结

    在正则表达式中,有一个重要的概念是贪婪与非贪婪模式(也称为勉强模式),它们决定了正则表达式匹配字符串的方式。本文将详细介绍JavaScript中正则表达式的贪婪模式和非贪婪模式,包括它们的具体功能、使用方法和...

    [正则表达式]贪婪模式与非贪婪模式

    非贪婪模式(也称为最小贪心或懒惰模式)是在量词后加上一个问号 `?` 来实现的。这种方式使得正则表达式尽可能短地进行匹配。 例如,在正则表达式 `a.*?b` 中,“.*?” 将尽可能少地匹配字符,直到找到下一个“b”...

    浅谈php正则表达式中的非贪婪模式匹配的使用

    总结一下,非贪婪模式匹配是正则表达式中的一个重要概念,它能帮助我们更加精确地控制匹配的范围。通过在量词后添加问号 "?",我们可以让正则表达式尽可能少地匹配字符,这对于处理含有多个相同模式的复杂字符串特别...

    JavaScript正则表达式的贪婪匹配和非贪婪匹配

    非贪婪模式的实现是在量词后面添加一个问号(`?`),如`/a+?/`。在同样的字符串"aaaaa"中,非贪婪匹配的`/a+?/`只会匹配第一个'a',因此返回结果为`["a"]`。 然而,非贪婪匹配并不总是如我们所期望的那样工作。例如...

    python 正则表达式贪婪模式与非贪婪模式原理、用法实例分析

    在正则表达式中,贪婪模式和非贪婪模式是两种重要的匹配策略,它们决定了正则表达式如何处理重复的量词(如`*`、`+`、`?`和`{m,n}`)。 1. **贪婪模式**: - 贪婪模式是正则表达式的默认行为,当遇到重复的量词时...

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

    总结一下,Python中的正则表达式可以通过在量词后添加问号来切换到非贪婪模式,这使得正则表达式在匹配时尽可能少地消耗字符,而不是尽可能多地匹配。理解和应用这个特性可以极大地提高你在处理字符串时的效率和准确...

    PHP 正则表达式效率 贪婪、非贪婪与回溯分析(推荐)

    与贪婪模式相反,非贪婪模式利用一个问号(?)后缀来实现,即".+?"、".*?"等。在PHP中,使用非贪婪模式可以有效避免贪婪模式中出现的一些问题。继续以实例说明,非贪婪模式的正则表达式"&lt;script&gt;.+?&lt;/script&gt;"在处理...

    正则表达式_贪婪与惰性

    在正则表达式中,量词的贪婪与惰性特性是关键的概念,它们决定了匹配模式的行为方式。贪婪量词和惰性量词的区别在于如何处理重复的匹配。 1. **贪婪量词**: 贪婪量词尽可能多地匹配字符。在正则表达式中,"+"和"*...

    第十五天 08贪婪和非贪婪模式【千锋Python人工智能学院】1

    要将一个贪婪的数量词转换为非贪婪模式,只需要在其后加上一个问号`?`即可。 以上面的示例为例,如果我们使用非贪婪模式进行匹配: ```python r = re.match(".+?(\d+-\d+-\d+-\d+)", s) print(r.group(1)) ``` ...

    正则表达式问号的四种用法详解

    2. 非贪婪匹配:默认情况下,正则表达式采取贪婪匹配,即尽可能多地匹配字符。然而,通过在量词后面添加问号(如`*?`、`+?`、`??`等),可以使得匹配变得非贪婪,即尽可能少地匹配字符。例如,`a.*?c`会尝试匹配最短...

    php代码-正则表达式贪婪模式

    1. 为了与贪婪模式相对,正则表达式还提供了非贪婪模式。在量词(如"*", "+", "?")后加上一个问号(?),就可以使该量词变为非贪婪的。 2. 在非贪婪模式下,正则表达式会尽可能少地匹配字符。如`/w+?/`匹配"hello ...

    正则表达式(regex) 贪婪模式、懒惰模式使用方法

    然而,在某些情况下,我们只需要匹配到第一个满足条件的字符串即可,这时就需要使用懒惰模式(Lazy Mode)或称为非贪婪模式。在懒惰模式下,正则表达式会尽可能少地匹配字符。要激活懒惰模式,只需要在贪婪模式使用...

    js正则表达式中的问号几种用法小结

    无论是停止贪婪模式、创建非捕获分组、应用零宽断言,还是表示重复次数,问号都是我们手中的一把利刃。随着对这些知识点的深入理解和实践,我们能够在实际开发中更有效地解决问题,提升代码的健壮性和效率。

    python re模块匹配贪婪和非贪婪模式详解

    ### Python re 模块匹配贪婪与非贪婪模式详解 #### 一、引言 在进行文本处理时,正则表达式是一种极其强大的工具。Python 的 `re` 模块提供了支持正则表达式的功能,使得开发者能够高效地完成字符串搜索、替换等...

Global site tag (gtag.js) - Google Analytics