Actionscript正则表达式(二)
Actionscript正则表达式
1、创建正则表达式
创建正则表达式模式有两种方法:
(1)直接声明并初始化:
varpattern:RegExp=/test/g;
其写法就是在两个正斜杠/的中间写入要匹配的字符串正则表达式,在第二个正斜杠后面写上匹配的标志符。
(2)利用RegExp的构造函数:
varmyPattern:RegExp=newRegExp("test","g|i");
其中第一个参数为要匹配的字符串正则表达式,第二个参数为标志符。
2、正则表达式的使用
(1)RegExp的test()和exec()方法:test(str:String):boolean在给定的字符串str中测试正则表达式是否匹配,若存在匹配,则返回true,否则返回false。exec(str:String):object如果没有匹配项,则返回null;否则,将返回具有以下属性的对象:一个数组,其中元素0包含完全匹配的子字符串,其它元素(1到n)包含与正则表达式中的括号组相匹配的子字符串(trace(object))
index--匹配的子字符串在字符串中的字符位置(trace(object.index))
input--输入的字符串(trace(object.input))
eg:varpattern:RegExp=/\bt([a-z]+)(b+)\b/;vars:String="mygod,thaaebbbtheoryisnotgood";varresult:Array=pattern.exec(s);trace(result);//输出thaaebbb,haaebb,b注:这里的"[a-z]+"不是匹配单个字母重复一次或多次,而是不同字母的一次或多次。
因为首先可知道匹配的是子字符串是"thaaebbb",然后开始利用括号分组去匹配子字符串,"([a-z]+)"匹配"haaebb","(b+)"匹配"b"。注:注意g(global)标志及lastIndex对这两个方法匹配的影响。(2)字符串的match()、replace()、search()和split():将指定的pattern(一般为字符串或正则表达式)与字符串匹配。一个字符串数组,其中包括与指定的pattern匹配的字符串中的所有子字符串。须注意标志符g对此方法返回的影响。相对于字符串匹配指定的pattern并返回一个新字符串,其中的第一个pattern匹配项被替换为repl所指定的内容。pattern参数可以是字符串或正则表达式。repl参数可以是字符串或函数;如果是函数,将插入由该函数返回的字符串以替换匹配项。未修改原始字符串。搜索指定的pattern(一般为字符串或者正则表达式)并返回第一个匹配子字符串的索引。如果没有匹配的子字符串,该方法返回-1。将String对象拆分为一个子字符串数组,方法是在所有出现指定delimiter(一般为正则表达式或字符串)参数的位置进行拆分。如果指定limit参数,返回的数组中具有的元素数将不多于指定数目。3、正则表达式的语法
(1)正则表达式的5个标志符标志属性描述gglobal匹配多个匹配。iignoreCase不区分大小写的匹配。应用于A-Z和a-z字符,但不能应用于扩展字符,如