`
xuyan2680
  • 浏览: 30744 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

正则表达式中 ? 的用法

 
阅读更多

原文符号

因为?在正则表达式中有特殊的含义,所以如果想匹配?本身,则需要转义,\?

有无量词

问号可以表示重复前面内容的0次或一次,也就要么不出现,要么出现一次。

非贪婪匹配

贪婪匹配

在满足匹配时,匹配尽可能长的字符串,默认情况下,采用贪婪匹配

   string pattern1 = @"a.*c";   // greedy match 
   Regex regex = new Regex(pattern1);
   regex.Match("abcabc"); // return "abcabc"

非贪婪匹配

在满足匹配时,匹配尽可能短的字符串,使用?来表示非贪婪匹配

string pattern1 = @"a.*?c";   // non-greedy match 
Regex regex = new Regex(pattern1);
regex.Match("abcabc"); // return "abc"

几个常用的非贪婪匹配Pattern

  • *? 重复任意次,但尽可能少重复
  • +? 重复1次或更多次,但尽可能少重复
  • ?? 重复0次或1次,但尽可能少重复
  • {n,m}? 重复n到m次,但尽可能少重复
  • {n,}? 重复n次以上,但尽可能少重复

不捕捉模式

如何关闭圆括号的捕获能力?而只是用它来做分组,即子组不保存内存,方法是在左括号的后边加上:?,这里第一个圆括弧只是用来分组,而不会占用捕获变量,所以$1的内容只能是steak或者burger,而永远不可能是bronto。
while(<>){
    if(/(?:bronto)(steak|burger)/){
        print "Fred wants a $1\n" ;
    }
}

 

 

作者:zdd
分享到:
评论

相关推荐

    Oracle正则表达式详解(用法+实例)

    Oracle正则表达式详解,用法+实例。

    JAVA正则表达式实例教程.pdf

    JAVA正则表达式实例教程.pdf 1、正则表达式的知识要点 1、正则表达式是什么?...在下面的教程中我们将学习到正则表达式的用法。 4、正则表达式的缺点? 需要花一定的时间学习,这个时间由个人决定,一天或者更久一些。

    使用正则表达式的模式匹配

    正则表达式(regular expression)是一个描述字符模式的对象。JavaScript的RegExp类表示正则表达式,而String和RegExp都定义了使用正则表达式进行强大的模式匹配和...它还介绍了使用正则表达式的String与RegExp方法。

    PB实现的正则表达式

    用PowerBuilder11.5实现的正则表达式,不支持中文,供大家学习,要用于商业软件,请与软件作者联系,在帮助文件有版权信息。

    Python程序设计:正则表达式检索与替换.pptx

    分割 的功能是使用正则表达式对字符串进行分割。 正则表达式检索与替换 正则表达式的匹配方法 match()尝试从字符串的起始位置匹配一个模式,匹配成功返回匹配的信息,如果不是起始位置匹配成功的话,match()就返回...

    Python正则表达式标准库使用教程.pdf

    本文介绍了Python对于正则表达式的支持,包括正则表达式基础以及Python正则表达式标准库的完整介绍及使用示例。本文的内容不包括如何编写高效的正则表达式、如何优化正则表达式,这些主题请查看其他教程。   ...

    万能日期正则表达式 (适用于各种日期样式)绝对经典

    中间的连接符平常用的是'-'和' ' 想显示时间就显示时间 &lt;br&gt;使用方法: &lt;br&gt;方法GenerateDateTimeReg(string formateType) 中传入一个datetime的formate格式,后面的工作就等着取Reg正则表达式吧。...

    关于在LABVIEW中使用正则匹配公式.vi

    在labview中使用正则匹配模式很简单,难的就是使用正则表达式。很多人都搞不明白,查了很多资料还是不太明白。实际上就是一些类似通配符在作怪和其他语言也差不多。附件带上了,可以研究研究,构造正则表达式的方法...

    Java身份证号码合法性校验算法,正则表达式。

    最完善的身份证号码合法性校验Java算法,适合Android平台,可以直接拿来在项目中使用,正则表达式。

    c++正则表达式用法及示例

    c++的正则表达式的用法及示例 c++的正则表达式的用法及示例 c++的正则表达式的用法及示例 c++的正则表达式的用法及示例

    正则表达式教程和配套测试工具regextester

    非常棒的正则表达式速成教程,号称30分钟叫你学会正则表达式常用用法。我本人学了一下,感觉不赖,不过俺比较笨,30分钟的东西学了3个多小时,已经从什么都不会变成会编各种复杂的正则筛选条件了^^!这个教程是配合...

    神奇的匹配-正则表达式之旅

    并基于目前流行的程序语言和应用环境-如c、asp.net、jsp、或php 全面介绍了创建正则表达式的方法 以及正则表达式在web环境中的各种应用。 【电子版来自互联网,仅供预览及学习交流使用,不可用于商业用途,如有版权...

    正则表达式帮助文档(正则表达式)

    这个是关于正则表达式的一个帮助文档 对学习正则表达式非常有帮助

    正则表达式完整高清版

    《正则指引》针对作者在开发中遇到的实际问题,以及其他开发人员咨询的问题,总结出一套使用正则表达式解题的办法,并通过具体的例子指导读者拆解、分析问题。全书分为三大部分:第一部分主要讲解正则表达式的基础...

    精通正则表达式(第三版)

    随着互联网的迅速发展,几乎所有工具软件和程序语言都支持的正则表达式也变得越来越强大和易于使用。《精通正则表达式(第3版)》是讲解正则表达式的经典之作。《精通正则表达式(第3版)》主要讲解了正则表达式的特性和...

    精通正则表达式(第3版)(含awz3 mobi epub)

    本书主要讲解了正则表达式的特性和流派、匹配原理、优化原则、实用诀窍以及调校措施,并详细介绍了正则表达式在Perl、Java、.NET、PHP中的用法。 本书自第1 版开始着力于教会读者“以正则表达式来思考”,来让读者...

    Java 正则表达式

    1、正则表达式的知识要点 ...在下面的教程中我们将学习到正则表达式的用法。 4、正则表达式的缺点? 需要花一定的时间学习,这个时间由个人决定,一天或者更久一些。 2、正则表达式的各种符号及其含义

    正则表达式(Deelx版)|正则表达式(Deelx版)支持库

    正则表达式支持库(Deelx版)|正则表达式支持库(Deelx版)

    Java使用正则表达式提取XML节点内容的方法示例

    主要介绍了Java使用正则表达式提取XML节点内容的方法,结合具体实例形式分析了java针对xml格式字符串的正则匹配相关操作技巧,需要的朋友可以参考下

    精通正则表达式(第3版) epub格式 带目录 精排极致版 猫头鹰的那本

    本书主要讲解了正则表达式的特性和流派、匹配原理、优化原则、实用诀窍以及调校措施,并详细介绍了正则表达式在Perl、Java、.NET、PHP中的用法。 本书自第1 版开始着力于教会读者“以正则表达式来思考”,来让读者...

Global site tag (gtag.js) - Google Analytics