正则表达式的应用
发布时间:2020-12-13 19:51:12 所属栏目:百科 来源:网络整理
导读:谈谈正则表达式,AS3.0中引进了正则表达式。正则表达式是用于验证文本值是否符合特定模式。 正则表达式有四个部分。 1元字符。2元序列。3标志。4数量表达符 。 可以这样看 pattern RegExp= /匹配字符串 元字符 元序列/标志 当然顺序可能不完全是这样.别把他
谈谈正则表达式,AS3.0中引进了正则表达式。正则表达式是用于验证文本值是否符合特定模式。 正则表达式有四个部分。1元字符。2元序列。3标志。4数量表达符。 可以这样看 pattern RegExp= /匹配字符串 元字符 元序列/标志 当然顺序可能不完全是这样.别把他想的太复杂其实他就是个组合。 现在我们来看看元字符: ^ $ . * + ? ( ) [ ] { } | 前面说的是元字符串的使用 1.^的用法:匹配字符串的开头 var pattern:RegExp=/^小虫/; var str:String="小虫是好人"; trace(str," is valid:",pattern.test(str));小虫是好人 is valid: tr 2.$的用法:字符串的结尾部分与前面的字符串匹配. var pattern:RegExp=/lizhen$/; var str:String="My name is lizhen"; trace(str,pattern.test(str));小虫是好人 is valid: tr 仔细看一下两个符号在匹配字符串中的位置,注意:如果同时使用^符号和$符号,将进行精确匹配。 3.的用法:转义字符 如果匹配字符串中包含有"/"比如 1/2 的时候,使用如下定义 var pattern:RegExp = /1/2/; var str:String="1/2是多少?"; trace(str,pattern.test(str));1/2是多少? is valid: tr 如果匹配字符串中包含有""比如 "lizhen" 的时候,使用如下定义 var pattern:RegExp=/"lizhen"/; var str:String="My name is "lizhen""; trace(str,pattern.test(str));My name is "lizhen" is valid: tr 4.*的用法:匹配0个或多个前面的字符.一个都没有也会返回tr; var pattern:RegExp=/我的*/; var str:String="我的我的我的";或者var str:String="我的" trace(str,pattern.test(str));我的我的... is valid: tr 5.+的用法:匹配至少一个前面的字符 var pattern:RegExp=/我的+/; var str:String="我的ID是...";或者var str:String="我的" trace(str,pattern.test(str));我的ID是... is valid: tr 注意+和*的区别。如果var str:String="我的"那就会显示false 6.?的用法:匹配0个或1个前面的字符 var pattern:RegExp=/天?/; var str:String="一天快乐";或者var str:String="天天快乐"; trace(str,pattern.test(str));一天快乐 is valid: tr 7..的用法:匹配任意单个字符 var pattern:RegExp=/天./; var str:String="一天快乐";或者var str:String="天天快乐"; trace(str,pattern.test(str));一天快乐 is valid: tr 8.[ ]的用法:匹配某一个范围而不局限于具体的单个字符 var pattern:RegExp=/[a-z]/ var str:String="a" trace(str,pattern.test(str));a is valid: tr 9.( )的用法:这个就相当于是个集合。 var pattern:RegExp=/([a-z][A-Z][0-9])+/ 比如说这个就是定义了一个四个字符的字符串第一个字符是a到z之间的字符第二个是A到Z之间的字符第三个是0-9之间的字符,第四个重复前面的数字。 var str:String="aD77aaaaaaaaaaaaaaaa" trace(str,pattern.test(str));aD77aaaaaaaaaaaaaaaa is valid: tr 10.|的用法:匹配左边或者右边的字符。 var pattern:RegExp=/小虫|lizhen/ var str:String="小虫是好人" trace(str,pattern.test(str));小虫是好人 is valid: tr 现在说说元序列 元序列是在正则表达式模式中具有特殊含义的字符序列{n} {n,} {n,m} b B d D f n r s S t unnnn v w w W xnn 1.{n}的用法:匹配恰好n个(n为非负整数)前面的字符。 var pattern:RegExp=/(小虫){2}/ 对象中连续出现2次小虫.注意下(),如果用var pattern:RegExp=/小虫{2}/ 那么就是var str:String="小虫虫" var str:String="小虫小虫" trace(str,pattern.test(str));小虫小虫 is valid: tr. 2.{n,}的用法:匹配恰好n个(n为非负整数)或更多个前面的字符。 3.{n,m}的用法:匹配至少n个,至多m个前面的字符。 4.b的用法:匹配单词字符和非单词字符之间的位置只能放在开头和结尾。NN的,他不支持中文.用中文还是用^. var pattern:RegExp=/b小虫/ var pattern:RegExp=/.mp3b/ var str:String="小虫.mp3"可以判断是否是mp3格式。 trace(str,pattern.test(str));小虫.mp3 is valid: tr 5.B的用法:匹配对象必须位于目标字符串的开头和结尾两个边界之内,即匹配对象既不能作为目标字符串的开头,也不能作为目标字符串的结尾和b相反。 var pattern:RegExp=/B是/ var str:String="我是虫子" trace(str,pattern.test(str));我是虫子 is valid: tr 6.d的用法:用于匹配从0到9的数字; var pattern:RegExp=/bd/ 开头的第一字符必须为数字 var str:String="900/元" trace(str,pattern.test(str)); 900/元 is valid: tr 7.D的用法:匹配除数字以外的任何字符 var pattern:RegExp=/bD/ 开头的第一字符必须不为数字 var str:String="a900/元" trace(str,pattern.test(str)); a900/元 is valid: tr 8.f的用法:匹配换页符DOS操作时代的概念 9.n的用法:匹配换行符 var pattern:RegExp=/n/ var str:String="欢迎来到虫子的空间!n" trace(str,pattern.test(str)); 10.r的用法:匹配回车符 var pattern:RegExp=/r/ var str:String="欢迎来到虫子的空间!r" trace(str,pattern.test(str)); 11.s的用法:匹配任何空白字符(空格、制表符、换行符或回车符) var pattern:RegExp=/s/ var str:String="欢迎来到虫子的 空间!" trace(str,pattern.test(str)); 欢迎来到虫子的 空间! is valid: tr 12.S的用法:匹配除空白字符以外的任何字符 var pattern:RegExp=/S/ var str:String="欢迎来到虫子的空间!" trace(str,pattern.test(str)); 欢迎来到虫子的空间! is valid: tr 13.t的用法:匹配制表符DOS操作时代的概念 14.unnnn用法:匹配字符代码由十六进制数字 nnnn 指定的 Unicode 字符。例如,? 是一个笑脸字符 var pattern:RegExp=/?/ var str:String="欢迎来到虫子的空间!?" trace(str,pattern.test(str)); 欢迎来到虫子的空间!? is valid: tr 15.v 用法:匹配垂直换页符DOS操作时代的概念 16.w用法:匹配单词字符(A-Z、a-z、0-9 或 _)。请注意,w不匹配非英文字符,如é、? 或 ?。他和[]是有区别的。 var pattern:RegExp=/^w/ var str:String="a虫子" var str:String="0虫子" var str:String="A虫子" var str:String="_虫子" trace(str,pattern.test(str));_虫子 is valid: tr 17.W用法:匹配除单词字符以外的任何字符。 var pattern:RegExp=/^W/ var str:String="虫子" trace(str,pattern.test(str));虫子 is valid: tr 18.xnn用法:匹配具有指定 ASCII 值(由十六进制数字 nn 定义)的字符。 var pattern:RegExp=/^x41/;"A" var str:String="ABCD"; trace(str,pattern.test(str));ABCD is valid: tr 标志:标志可以作为正则表达式对象属性进行访问。正则表达式有五个标志:g i m s x 1.g的用法:如果不指定g,那么在查找的时候只会返回一个。如: var str:String = "she sells seashells by the seashore."; var pattern:RegExp = /shw*/; trace(str.match(pattern)) 输出:she 指定g后: var str:String = "she sells seashells by the seashore."; var pattern:RegExp = /shw*/g; trace(str.match(pattern)) 输出:she,shells,shore 2.i的用法:默认情况下,正则表达式匹配区分大小写。如果设置 i (ignoreCase) 标志,将忽略区分大小写。 var str:String = "She sells seaShells by the seaShore."; var pattern:RegExp = /shw*/gi; trace(str.match(pattern)) 输出:She,Shells,Shore 3.m的用法:匹配"行"的开头和结尾.注意这里的行只有 n 字符表示行的结束,其余的都不行。包括r。比如: var str:String = "She sells seaShells by the seaShore.n"; str+="She's your mother" var pattern:RegExp = /^shw*/gim; trace(str.match(pattern)) 输出:She,She 也可以在结尾使用.比如: var str:String = "She sells seaShells by the seaShore.n"; str+="She's your mother.n" var pattern:RegExp = /n$w*/gim; trace("====="+str.match(pattern)) 输出:===== 4.s的用法:用点来匹配换行符 var str:String = "<p>Testn"; str += "Multiline</p>"; var re:RegExp = /<p>.*?</p>/s; trace(str.match(re)); 5.x的用法:在正则表达式中使用 x (extended) 标志时,则会忽略在模式中键入的所有空格。 var str:String = "lizhen"; var re:RegExp = /li zhen/x trace(str.match(re));输出:lizhen (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |