上一题下一题
跳转到
 
 
  世界如此多姿,发展如此迅速,窥一斑未必还能知全豹。但正如万花筒一样,每一个管窥都色彩斑斓。  
 
 
  知识通道 | 学习首页 | 教师首页 | PK首页 | 知识创造首页 | 企业首页 | 登录
 
本文对应知识领域
正则表达式中的贪婪与懒惰
作者:deerchao 申领版权
2010年10月25日 共有 1877 次访问 【添加到收藏夹】 【我要附加题目
受欢迎度:

    贪婪与懒惰
    
    
    当正则表达式中包含能接受重复的限定符时,通常的行为是(在使整个表达式能 得到匹配的前提下)匹配尽可能多的字符。以这个表达式为例: a.*b ,它将会匹配 最长的以a开始,以b结束的字符串 。如果用它来搜索 aabab 的话,它会匹配整个字 符串 aabab 。这被称为 贪婪 匹配。
    有时,我们更需要 懒惰 匹配,也就是匹配尽可能少的字符。前面给出的限定符 都可以被转化为懒惰匹配模式,只要在它后面加上一个问号 ? 。这样 .*? 就意味着 配任意数量的重复,但是在能使整个匹配成功的前提下使用最少的重复 。现在看看 懒惰版的例子吧:
    a.*?b 匹配 最短的,以a开始,以b结束的字符串 。如果把它应用于 aabab 的话,它会匹配 aab(第一到第三个字符)ab(第四到第五个字符)
    为什么第一个匹配是aab(第一到第三
    个字符)而不是ab(第二到第三个字 符)?简单地说,因为正则表达式有另一 条规则,比懒惰/贪婪规则的优先级更 高:最先开始的匹配拥有最高的优先权—
    —The match that begins earliest wins。
    
    表5.懒惰限定符

    
代码/语 法
    
说明
    
 
    *?
    
重复任意次,但尽可能少重
    
    
 
     ?
    
重复1次或更多次,但尽可能
    少重复
    
 
    ??
    
重复0次或1次,但尽可能少
    重复
    
 
    {n,m}?
    
重复nm次,但尽可能少重
    
    
 
    {n,}?
    
重复n次以上,但尽可能少重
    
    

 

相关新闻

遗传学 第八章 第一节 染色体结构变异
标识符和表达式
正则表达式的更多应用
正则表达式中的重复
测试正则表达式
FT中文网:谁来PK“百度局域网”
一个网站的金字塔战略

您可能对这些感兴趣  

《VB程序设计基础》选择题
设计模式之Iterator
设计模式之Visitor
设计模式之Interpreter(解释器)
设计模式之Mediator(中介者)
设计模式之Strategy(策略)
设计模式之State
设计模式之Command
设计模式之Chain of Responsibility(职责链)
设计模式之Observer

题目筛选器
日期:
类型:
状态:
得分: <=
分类:
作者:
职业:
关键字:
搜索

 
 
 
  焦点事件
 
  知识体系
 
  职业列表
 
 
  最热文章
 
 
  最多引用文章
 
 
  最新文章
 
 
 
 
网站介绍 | 广告服务 | 招聘信息 | 保护隐私权 | 免责条款 | 法律顾问 | 意见反馈
版权所有 不得转载
沪ICP备 10203777 号 联系电话:021-54428255
  帮助提示    
《我的太学》是一种全新的应用,您在操作中遇到疑问或者问题,请拨打电话13564659895,15921448526。
《我的太学》