欢迎来到天天文库
浏览记录
ID:42100471
大小:3.11 MB
页数:14页
时间:2019-09-08
《正则表达式及在tcl应用》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、作者:XXX部门:测试部日期:2011-11-16制作:某某部时间:2011-1-1正则表达式及在TCL中应用目录基本概念典型实例演示及分析第五节tcl中的应用一regexp贪婪与非贪婪模式常用正则表达式集第六节tcl中的应用二regsub第一节正则表达式的基本概念正则表达式:指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串(公式)。用处:用来检索和/或替换那些符合某个模式的文本内容。许多程序设计语言都支持利用正则表达式进行字符串操作。组成:有一些普通字符和一些元字符组成(包括汉字)。普通字符
2、包括大小写的字母和数字;元字符是具有特殊含义的字符。元字符描述将下一个字符标记为一个特殊字符、或一个原义字符、或一个向后引用、或一个八进制转义符..匹配除“”之外的任何单个字符。要匹配包括“”在内的任何字符,可使用”(.
3、)”的模式.^匹配输入字符串的开始位置。如:^hello匹配“helloworld”,但不匹配“worldhello”。$匹配输入字符串的结束位置。如:hello$匹配“worldhello”,但不匹配“helloworld”*匹配前面的子表达式零次或多次。如:zo*能匹配“z
4、”“zo””zoo”。等价于{0,}。+匹配前面的子表达式一次或多次。如:zo+能匹配“zo””zoo”。等价于{1,}。?匹配前面的子表达式零次或一次。如:zo*能匹配“z”“zo”。等价于{0,1}。{n}n为非负整数。匹配确定的n次。o{2}匹配”zoo”中的“oo”,但不能匹配”zo”中的“o”。{n,}n为非负整数。至少匹配n次。o{2}匹配“zooo”中的“ooo”,但不能匹配”zo”中的“o”。{n,m}m,n均为非负整数,且n<=m。最少匹配n次且最多匹配m次。?当该字符紧跟在任何一个其他限制
5、符(*,+,?,{n},{n,},{n,m})后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串.例如,对于字符串“oooo”,“o+?”将匹配单个“o”,而“o+”将匹配所有“o”。[];[^];[c1-c2];[xyz]匹配方括号中x,y,z的任意一个字符;[a-z]匹配任意一个小写字符。[^xyz]不匹配方括号中x,y,z的任意一个字符;同理[^a-z];第二节常用正则表达式集第二节常用正则表达式集元字符描述(sub_exp)()之间的表达
6、式被定义为“组”,并且将匹配这个表达式的字符保存到一个临时区域,可被单独引用。(在之后讲的regexp中的substring用到。)x
7、y匹配x或y。例如,“z
8、food”能匹配“z”或“food”。“(z
9、f)ood”则匹配“zood”或“food”。b匹配一个单词边界,也就是指单词和空格间的位置。例如,“erb”可以匹配“never”中的“er”,但不能匹配“verb”中的“er”。B匹配非单词边界。“erB”能匹配“verb”中的“er”,但不能匹配“never”中的“er”。d匹配一个数字字
10、符。等价于[0-9]。D匹配一个非数字字符。等价于[^0-9]。f匹配一个换页符。等价于x0c和cL。r匹配一个回车符。等价于x0d和cM。s匹配任何空白字符,包括空格、制表符、换页符等等。等价于[frtv]。S匹配任何非空白字符。等价于[^frtv]。w匹配包括下划线的任何单词字符。等价于“[A-Za-z0-9_]”。W匹配任何非单词字符。等价于“[^A-Za-z0-9_]”。un匹配n,其中n是一个用四个十六进制数字表示的Unicode字符。第三节贪婪与非贪
11、婪模式贪婪与非贪婪模式影响的是被量词修饰的子表达式的匹配行为。贪婪模式在整个表达式匹配成功的前提下,尽可能多的匹配。非贪婪模式在整个表达式匹配成功的前提下,尽可能少的匹配。属于贪婪模式的量词,也叫做匹配优先量词,包括:“{m,n}”、“{m,}”、“?”、“*”和“+”。例子一:aa
12、v>匹配结果二:
13、0.d*)匹配中文字符:[
此文档下载收益归作者所有