正则表达式及在tcl应用.ppt

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三节 贪婪与非贪婪模式 贪婪与非贪婪模式影响的是被量词修饰的子表达式的匹配行为。 贪婪模式在整个表达式匹配成功的前提下,尽可能多的匹配。 非贪婪模式在整个表达式匹配成功的前提下,尽可能少的匹配。 属于贪婪模式的量词,也叫做匹配优先量词, 包括:“{m,n}”、“{m,}”、“?”、“*”和“+”。 例子一: aadivtest1/divbbdivtest2/divcc 正则表达式一:div.*/div 匹配结果一:divtest1/divbbdivtest2/div 正则表达式二:div.*?/div 匹配结果二:divtest1/div 例子二: csdnfddabckjdsfjabc 正则表达式一:csdn.{1,100}abc 匹配结果一:csdnfddabckjdsfjabc 正则表达式二: csdn.{1,100}?abc 匹配结果二:csdnfddabc 第四节 典型实例演示及分析 匹配整数:^-?[1-9]\d*$ 匹配浮点数:^-?([1-9]\d*\.\d*|0\.\d*) 匹配中文字符:[\u4e00-\u9fa5] 匹配双字节字符(包括汉字):[^\x00-\xff] 第五节 tcl中的应用一 regexp -indices 返回值变成了对应的匹配子串在整个字符串中所处位 置的索引。 -expanded 启用扩展的规则,将空格和注释忽略掉。 参数matchVal :匹配字符串被赋予此变量。 参数subMatchVar:匹配子正则表达式(“(sub_exp)”)的字串。 第六节 tcl中的应用二 regsub regsub ?switchs? exp string subSpec varname 前三个参数switchs? exp string 和regexp一样。 参数subSpec的值来替换字符串string中和正规表达式匹配的部分。 参数varname被认为是一个变量,替换后的字符串存入改变量中。 作者:XXX 部门:测试部 日期:2011-11-16 制作:某某部 时间:2011-1-1 正则表达式及在TCL中应用 目录 基本概念 典型实例演示及分析 第五节 tcl中的应用一 regexp 贪婪与非贪婪模式 常用正则表达式集 第六节 tcl中的应用二 regsub 第一节 正则表达式的基本概念 正则表达式:指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串(公式)。 用处:用来检索和/或替换那些符合某个模式的文本内容。许多程序设计语言都支持利用正则表达式进行字符串操作。 组成:有一些普通字符和一些元字符组成(包括汉字)。 普通字符包括大小写的字母和数字; 元字符是具有特殊含义的字符。 将下一个字符标记为一个特殊字符、或一个原义字符、或一个向后引用、或一个八进制转义符. \ [xyz] 匹配方括号中x,y,z的任意一个字符;[a-z]匹配任意一个小写字符。 [^xyz]不匹配方括号中x,y,z的任意一个字符;同理[^a-z]; [];[^]; [c1-c2]; 描述 元字符 m,n均为非负整数,且n=m。最少匹配n次且最多匹配m次。 {n,m} 当该字符紧跟在任何一个其他限制符(*,+,?,{n},{n,},{n,m})后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串.例如,对于字符串“oooo”,“o+?”将匹配单个“o”,而“o+”将匹配所有“o”。 ? 匹配前面的子表达式零次或多次。如:zo*能匹配“z”“zo””zoo”。等价于{0,}。 * 匹配前面的子表达式一次或多次。如:zo+能匹配“zo””zoo”。等价于{1,}。 + 匹配前面的子表达式零次或一次。如:zo*能匹配“z”“zo”。等价于{0,1}。 ? n为非负整数。匹配确定的n次。o{2}匹配”zoo”中的“oo”,但不能匹配”zo”中的“o”。 {n} n为非负整数。至少匹配n次。o{2}匹配“zooo”中的“ooo”,但不能匹配”zo”中的“o”。 {n,} 匹配输入字符串的结束位置。如:hello$匹配“world hello”,但不匹配“hello world” $ 匹配输入字符串的开始位置。如:^hello 匹配“hello world”,但不匹配“world hello”。 ^ 匹配除“\n”之外的任何单

文档评论(0)

wuyoujun92 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档