【AS3代码】正则表达式的各种用法和小实例

package
{
    import flash.display.Sprite;
    public class Main extends Sprite
    {    
        public function Main():void
        {
            //---正则表达式---
            
            //普通字符匹配
            var a:RegExp = /abc=/g;
            var b:String ="AAAA abc= CCCC BBBBB";
            trace(b.match(a));    //将指定的字符a在数据b中匹配
            
            //11个被保留的特殊原字符  [] \ ^ $ . | ? * + ()
            var a1:RegExp = /a\/\+bc=/g;                    //斜杠/和加号+左边都要加上\用来转义
            var b1:String ="AAAA a/+bc= CCCC BBBBB";        //被匹配的源字符串
            trace(b1.match(a1));                            //正则表达式匹配方法
            
            //不可见字符
            var a2:RegExp = /\r/g;    //回车换行符\r
            var b2:String = "AAA \r abc \r BBB \r DDD";
            trace(b2.match(a2));
            
            //多条件匹配,结果abc,a哈c,afc
            var a3:RegExp = /a[b哈f]c/g;
            var a3:RegExp = /a[^b哈f]c/g;                    //取反符号^,取出不包括b,哈,f三个
            var a3:RegExp = /a[b-z]c/g;                    //表示b-z所有的小写字母,区分大小写
            var b3:String = "abc adc a哈c afc apc";
            trace(b3.match(a3));
            
            //需要转义的4个字符  ] \ ^ -
            
            //点号.用来匹配所有
            var a4:RegExp = /a.c/g;                            //.号可匹配1个所有的字符
            var a4:RegExp = /a..c/g;                        //两个.号可匹配2个所有的字符
            var b4:String = "abc ad牛c a哈c afc apc";
            trace(b4.match(a4));
            
            //选择符(检索abc或eee)
            var a5:RegExp = /abc|eee/g;
            var b5:String = "abc adc afc eee";
            trace(b5.match(a5));
            
            //括号与分组
            var a6:RegExp = /a(get|got)b/g;
            var b6:String = "agetb agotb agftb";
            trace(b6.match(a6));
            
            //显示限定符用法:字符串的重复(把{}括号内的语句当作整体来执行,也叫子表达式)
            var a7:RegExp = /a{3}b/g;    //a重复3次 aaab
            var a7:RegExp = /a{3,}b/g;    //a至少重复3次 aaab或aaaaab...
            var a7:RegExp = /a{2,4}b/g;    //只允许a重复2次,3次和4次
            
            var b7:String = "aaab aaacb aab aaaaab aaaaaaab";
            trace(b7.match(a7));
            
            //非显示限定符
            //ab*   a后面跟着b,b重复0到多次(可匹配:a ab abbb abbbbbbbb)
            //ab+   a后面跟着b,b重复1次到多次(可匹配:ab abbb abbbbbb)
            //ab?   a后面跟着b,b重复0次或1次(可匹配:a ab)
            
            //正则表达式的定位
            //^        匹配字符串的开始位置
            //$        匹配字符串的结束位置
            //\b    匹配单词的边界,就是单词和空格之前的位置
            //\B    匹配与上相反,也就是非边界
            
            
        }
    }
}
posted @ 2012-04-18 15:57  王翔(kingfly)  阅读(3067)  评论(0编辑  收藏  举报