易语言正则表达式详细教程_第1页
易语言正则表达式详细教程_第2页
易语言正则表达式详细教程_第3页
易语言正则表达式详细教程_第4页
易语言正则表达式详细教程_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《易语言“正则表达式”《易语言“正则表达式”匹配特定数据,代码编辑框中字符的等等,这都可以用正则表达式来完成目 目 第一章易语言正则表达式入 一.与DOS下的通配符类 第1个正则表达式程 第2个正则表达式例 第3个例 第二章揭开正则表达式的神秘面 引 一.正则表达式规 普通字 二.正则表达式中的一些高级规 反向\1, 三.其他通用规 四.其他提 第三章正则表达式工具与实 实例 实例 实例 实例 第四章正则表达式话 引 一.表达式的递归匹 二.非贪婪匹配的效 2.1效率陷阱的产 2.2效率陷阱的避 附 一.17种常用正则表达 第一章语言正则表达式入DOS“*123.*表示所有文件名为123的文件,如123.txt,123.doc,123.wps,123.swf,123.xls上述DOS下的通配符用“?”号代表一个字符“*”号代表任意个字符,但在正则表达式正是在“DOS*0a*意味着能够匹配任意数量的ar.t:rat、rut、rt,但是不root(DOS^匹配一行的开始。例如^When能够匹配字符串"Wheninthecourseofhumanevents"的开始,但是不能匹配"WhatandWheninthe"。$weasel$能够匹配字符串"He'sa的末尾,但是不能匹配字符串"Theyareabunchofweasels.\** ],这个[ abc,acb,bac,bca,cab,cba6[0- 09[a- [A- 当然,你可以把它们混在一起写成[a-z0-9]很多时候,我们需要检查文本中的非数字,我们就可以使用^这个符号,[^0-9][^a-zA-Z][^FONT]FONT*0.?01+1^$0[范围描述符。[a-z]az英文字母和数字。即[0-9A-Za-z]空字符,即[\t\n\r\f]数字,即[0-9]词边界字符(在范围描述符外部时(0x08(前面元素最少出现mn|(四.正则表达式支持库1 .局部变量正则表达式1,正则表达 1.(“A.C”,2.=1.1.1运行后,大家只要输入三个字符,前为AC去匹配是否成功以及可以进行程序名称的检查程序中一些文字的检查等,这可能让一些不会正则的者很难下手。2支持库的基本使用方法,下面这个例程可以让大家了解正则会返回一些的内1,1,1.(“A.C”,2.=1[1].1.AC31,1,搜索结果,,1.创建(“[a-z0-9”特殊符号.但注意如果有字符"^",就表示"除了",如"[^abc]"abc",现1=1.1.()2.内容=1),2.11.1,1,1,1,111.=2.=1.1.1=11.1,=A.=1[1].1.B.=C.=1A.D.=A4\.0(模块|4.00,请置这个程序的启动窗口最前。01第二章揭开正则表达式的神秘面[文章,请保留或注明出处 引正则表达式(regularexpression)描述了一种字符串匹配的模式,可以用(2)做到由浅入深地讲解,概念上没有注意先后顺序,给读者的理解带来;另一一.1ace23(01开始,因当前编程语言的不同而可能不同)匹配到的内容是:“bcd14。一些不便书写的字符,采用面加"\"的方法。这些字符其实我们都已经\r,"\"还有其他一些在后边章节中有特殊用处的标点符号,面加“\”后,就^匹配$匹配到的内容是:“$d”;匹配到的位置是:开始于3,结束于5。只能是一个,不是多个。这就好比玩牌时候,大小王可以代替任意一张牌,任意一个数字,0~9A~Z,a~z,0~9,_.小数点可以匹配除了换行符(\n)以外的任意一个字1:表达式“\d\d”,在匹配“abc123”时,匹配的结果是:成功;匹配到的内容是:“12”;匹配到的位置是:开始于3,结束于5。2:表达式“a.\d”,在匹配“aaa100”时,匹配的结果是:成功;匹配到的内容是:“aa1”;匹配到的位置是:开始于1,结束于4。[][^]包匹配"a"或"b"或"5"或"a","b","c"[f-"f"~"k"[^A-F0-"A"~"F","0"~"3"举例1:表达式“[bcd][bcd]”匹配“abc123”时,匹配的结果是:成功;匹配到的内容是:“bc13。2:表达式“[^abc]”匹配“abc123”时,匹配的结果是:成功;匹配到的内容是:“134。比如:“[bcd][bcd]”可以写成“[bcd]{2}”。表达式重复n次,比如:"\w{2}""\w\w";"a{5}"表达式至少重复m次,最多重复n次,比如:"ba{1,3}""ba"或"baa"或表达式至少重复m次,比如:"\w\d{2,}"可以匹配?匹配表达式0次或者1次,相当于{0,1},比如:"a[cd]?"可以匹配+表达式至少出现1次,相当于{1,},比如:"a+b"*表达式不出现或出现任意次,相当于{0,},比如:"\^*b"1:表达式“\d+\.?\d*”在匹配“Itcosts$12.5”时,匹配的结果是:成功;匹配到的内容是:“12.5”;匹配到的位置是:开始于10,结束于2:表达式“go{2,8}gle”在匹配“Adsbygoooooogle”时,匹配717。想取得某个的匹配可以如下哈哈越来越有意思了吧如果在一句话中找到某个也是非常简单的了,^$1"^aaa""xxxaaaxxx"时,匹配结果是:失败。因为"^""aaa"位于字符串的开头的时候,"^aaa"才能匹配,比如:"aaaxxxxxx"。2"aaa$""xxxaaaxxx"时,匹配结果是:失败。"$""aaa"位于字符串的结尾的时候,"aaa$"才能匹配,比如:"xxxxxxaaa"。3".\b.在匹配"@@@abc"时,匹配结果是:成功;匹配到的内容是:"@a";匹配到的位置是:开始于2,结束于4。进一步说明:"\b""^""$"类似,本身不匹配任何字符,但是它要求它在匹配结果中所处位置的左右两边,其中一边是"\w"范围,另一边是非"\w"的范围。4\en\weknenfendend1518。一些符号可以影响表达 作|"或"(5"Tom|Jack""I'mTomheisJack"时,匹配结果是:成功;匹配到的内容是:"Tom"4,结7。匹配下一个时,匹配结果是:成功;匹配到的内容是:"Jack";匹配到1519。6"(go\s*)+""Let'sgogogo!"时,匹配结果是:成功;匹配到内容是:"gogogo"614。7:表达式"¥(\d+\.?\d*)"在匹配"$10.9,¥20.5"时,匹配的10。单独获取括号范围匹配到的内容是:"20.5"。二.够匹配不同的次数,比如:"{m,nm"*",,具体匹配的次数可能多的匹配。比如,针对文本"dxxxdxxxd",举例如下:“\w+”将匹配第一个“d”之后的所有字\w虽然第二个举例中,它没有匹配最后一个“”,但那也是为了让整个表达式能*{mn}”的表达式在可匹配可不匹配的时候,也是尽可能的“要匹配”。这种匹配原则就叫作“贪婪”模式。举例1:表达式“<td>(.*)</td>”与字符“<td><p>aa</p></tdtd><p>bb</p></td>举例2:相比之下,表达式“<td>(.*?)</td>”匹配举例1中同样的字符反向\1,表达式在匹配时,表达式引擎会将小括号“()”包含的表达式所匹配到的字以使用,在匹配过程中也可以使用。表达式后边的部分,可以前面“括号内的子匹配已经匹配到的字符串”。方法是“\”加上一个数字。“\1”第1对括号内匹配到的字符串,“\2”第2对括号内匹配到的字符串……举例1:表达式“('|")(.*?)(\1)”在匹配“'o',"World"”时,匹配结果是:成功;匹配到的内容是:“'o'”。再次匹配下一个时,可以匹配到2(\w)\1{4,}一个时,将得到999999999。这个表达式要求“\w53:表达式“<(\w+)\s*(\w+(=('|").*?\4)?\s*)*>.*?</\1>”在匹配“<tdid='td1'style="bgcolor:white"></td>”时,匹配结果是成功。前面的章节中,本书讲到了几抽象意义的特殊符号:“^”,“$”,举例1:表达Windows(?=NT|XP)”在匹Windows98,WindowsNTWindows2000”时,将只匹配“WindowsNT”中的“Windows”,其举例2:表达式“(\w)((?=\1\1\1)(\1))+”在匹配字符串“aaaffffff9999999996个“f49个“9格式:“(?!xxxxx)xxxxx这部分表举例4:表达式“do(?!\w)”在匹配字符串“done,do,dog”时,只能匹5:表达式“(?<=\d{4})\d+(?=\d{4})”在匹配“123456789012345644个数字之外的中间8个数字。由于JScript.RegExp不支持反向预搜索,因此,本条举例不能够进行演示。很多其他的引擎可以支持反向预搜索,比如:Java1.4以上的java.util.regex包,.NET中System.Text.RegularExpressions命名空间,以及本站推荐的最简单易用的DEELX正则引擎。三.还有一些在各个正则表达式引擎之间比较通用的规则,面的讲解过程中0~255"\s","\d","\w","\b表示特殊意义的同时,对应的大写匹配所有非空白字符("\s"可匹配各个空白字符"\w"范围或者左右两边都不是"\w"范围时的字符缝隙在表达式中有特殊意义,需要添加“\”才能匹配该字符本身的字符总^"^"$"$"("\("['多种字符'"\["{"\{".?01"?"+1"+"*0"*"|"或""|"括号“”内的子表达式,如果希望匹配结果不进行记录供以后使用, “(?:(\w)\1)+”匹配“abbccddefg”时,结果是来。默认情况下,表达式中的字母是要区分大小写的。配置为Ignorecase可使"大小写"".""^""$"Multiline"^""$"Global四.关于DEELX正则引擎的说明文档。部分,那么可以在表达式的首尾使用"^"和"$",比如:"^\d+$"要求整个在表达式首尾使用"\b",比如:使用"\b(if|while|else|void|int……)\b"来有匹配到。比如:准备写一个匹配"123"、"123."、"123.5"、".5"这几种形每一部分都可以匹配0次,而这个括号整体又可以匹配无限次,那么情况可能"|"的左右两边,对某个字符最好只有一边可以匹配,这样,不会因为"|"两边的表达式因为交换位置而有所不同。第三章则表达式工具与实家介绍所有令。同时希望大家能安装ESDN,很多例程大家都可以通过这个语言4\.0(模块|支持库)?)|(正则表达式.0,)将显示“真”。

易语言4.0),4\.0(模块|支持库)?1个子表达式:“(模块|支持打开随书例程:匹配中文.e 大家可以这个贴子中的编译程序源代码,其中有一部分的接收到错误信息时,可以在ESDN中有一个替换网页的例程,大家自己看吧第四章则表达式话[文章,请保留或注明出处 引一.使用表达式“\([^)]*”或者“\(.*”可以匹配一对小括号。但是如果括号内还嵌有一层括号的话,如“”,则这种写法将不能够匹配正确,得到的结果是“(()”。类似情况的还有HTML中支持嵌套的如“<font>和GRETA中,表达式中使用"(?R)"来表示嵌套部分。“\(([^()]|(?R))*\)”。[PerlPHP的示例代码第一步,写一个不能支

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论