ActionScript3.0的正则表达式简单实用例程

 

简介:

正则表达式(Regular Expression),AS3中用于字符串匹配的利器,常用的正则表达式类主要是RegExp

 

用法:

RegExp类有两种实例化的方法。

方法一:var samplePattern:RegExp = /sample/g;

方法二:var samplePattern:RegExp = new RegExp(“sample”,”g”);

 

详解:

RegExp的两种用法可以看出,正则表达式主要分成两个部分。

方法一中,双斜杠内是一部分,斜杠后是一部分。

方法二中,构造函数的第一个参数是一部分,第二个参数是一部分。

在这两种方法中,前半部分叫做匹配模式(Pattern),用来描述字符串特征;后半部分是正则表达式的标志位,由“gimsx”五个字母集组成,用于设定匹配的模式。

         举例如下:

         Var samplePattern:RegExp = /sample/g;

         Var testString:String = “this is a sample of regular expression. It is really simple”;

         Trace(testSting.match(samplePattern));                  //匹配第一个“sample”字符,输出:sample

 

      语法:

n  元字符:[]/^$.|?*+() 共十一个字符;

n  普通文字和字母:除元字符外地其他符号(Az09#=等等);

n  不可见字符:

1.         /cx匹配x指明的控制字符。如/cM匹配一个Ctrl-Mx只能是Az之一

2.         /f匹配一个换页符,相当于/x0c/cL

3.         /n匹配一个换行符,相当于/x0a/cJ

4.         /r匹配一个回车符,相当于/x0d/cM

5.         /t匹配一个制表符,相当于/x09/cI

6.         /v匹配一个垂直制表符,相当于/x09/cK

7.         /s匹配任何空白字符串,包括空格符、制表符等等,相当于[/f/n/r/t/v];

8.         /S匹配任何非空白字符,相当于[^/f/n/r/t/v]

        

      语法实例:

l  连字字符“[]:

         在正则表达式的元字符中,符号“[”和“]”基本上是成对出现的,在两者之间,我们可以定义需要进行匹配的字符集,如/g[eo]t/,匹配字符getgot(注意!并不匹配geot!)。

         其中,可以使用“-”来定义一个范围,如/g[a-z]t/,可以匹配gatgbtgct…..gzt。例如,匹配一个四位数的年份,可以写成/[0-2][0-9][0-9][0-9]/,这样就可以匹配00002999年的年份。

 

l  取反字符“^:

         /g[^0-9]t/表示匹配除了g0t,g1t,g2t…g9t之外的字符,如gAt,gzt等等。

 

l  特殊符号“.

         点号(.)在正则表达式中,表示一个模糊的关键字,相当于windows系统进行文件搜索时所用的星号“*”,倘若不知道文件的名字,只知道文件的后缀,可以输入:*.doc,然后进行搜索;那么在正则表达式中,如果不关心被匹配的字符是什么,则可以使用“.”来代替被匹配的字符。举例如下:

         var foo:RegExp = /g.t/sg;

         var targetStr:String = “g5t g/nt g/rt g-t gtt gst seet”;

         trace(targetStr.math(foo));

输出

         G5t,g

         T,g

         T,g-t,gtt,gst

 

l  选择符“|

         用来匹配多个正则表达式中的一个,如/see|saw/可匹配字符see或者saw

 

l  圆括号“()”

         圆括号的作用主要是用于将表达式括起来,作为独立的一部分。举一个简单的例子,例如正则表达式//ssee|saw/s/,匹配出来的是/ssee或者是saw/s,如果想匹配/ssee/s或者/ssaw/s,则需要将see|saw这部分独立出来,所以写成//s(see|saw)/s

 

l  花括号“{}

         花括号在正则表达式中主要是由于描述字符串的重复,括号内的数字表示重复的次数。例如:

/k{2}a/可匹配字符kka;

/k{1,}a/匹配至少重复1K,后面紧跟a的字符串(ka,kka,kkka

/k{1,2}a/匹配重复1或者2K,后面紧跟a的字符串(如ka,kka,不匹配kkka

 

除此之外,正则表达式还提供了一种方便描述一些常见的重复的方法,如:

         /wa*/相当于/wa{0,}/,可以匹配出现w紧跟0个或若干a的字符串,如w,wa,waaaa

         /wa+/相当于/wa{1,}/,可以匹配出现w紧跟至少1a的字符串,如wa,waa,waaaa

         /wa?/相当于/wa{0,1}/,可以匹配出现w紧跟0个或1a的字符串,如w,wa

 

l  用于定位的特殊字符

1.         ^匹配输入字符串的开始位置。如果设置了正则表达式的m标志位,^也匹配“/n”“/r”之后的位置

2.         $匹配输入字符串的开始位置。如果设置了正则表达式的m标志位,$也匹配“/n”“/r”之后的位置

3.         /b匹配一个单词边界,也就是指单词和空格间的位置

4.         /B匹配非单词边界

                  举例如下:

                            var test:String = "xTorodox";

                            trace(test.match(//bTor/));              //输出null

                            trace(test.match(/do/b/));                //输出null

                            test = "Torodox";

                            trace(test.match(//bTor/));              //匹配成功,输出Tor

                            test = "xTorodo";

                            trace(test.match(/do/b/));                //匹配成功,输出do

                            trace(test.match(/ro/B/));                //匹配成功,输出ro

                            test = "Toxor";

                            trace(test.match(/ro/B/));                //输出null

 

l  5个标志位

         g – global 匹配多个

         i – ingnoreCase 忽略大小写,不能用于扩展字符

         m – multiline 设置这个标志位后,^$可以匹配行的开头和结尾

         s – dotall 设置此标志位后“.”可以匹配/n

         x – extended 支持扩展的正则表达式。允许在正则表达式中键入空格,空格将被当作模式的一部分被忽略

 

l  AS3RegExp类的exec()test()

Test()检查目标字符串是否包含正则表达式的匹配内容,如果包含则返回true,否则返回false

Exec()也可以用于检测目标字符串,但是它返回的是ObjectObject内包括匹配的字符串、同正则表达式中的任意括号组匹配的子字符串,其次这个数组还有index属性。

举例如下:

var myPattern:RegExp = //bt([a-z])+/b/;

                            var str:String = "Ok, the theory is not good";

                            var result:Object = myPattern.exec(str);

                            trace(result);

                            trace(result.index);

                            trace(myPattern.test(str));

输出:

the,e

4

True

 

String类中与正则表达式相关的方法search()match()

Search()返回与模式匹配的第一个字符串的索引位置。

Match()返回包含匹配字符串的数组。

举例如下:

var myPattern:RegExp = //bt([a-z])+/b/g;

                            var str:String = "Ok, the theory is not good";

                            var result:Object = myPattern.exec(str);

                            trace(str.search(myPattern));

                            trace(str.match(myPattern));

                            trace(str.replace(myPattern,"this"));

输出:

4

the,e

Ok, this theory is not good

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ActionScript 3.0 是一种基于Adobe Flash 平台的编程语言,常用于游戏开发。它具有强大的功能和丰富的库,可实现各种游戏特效和交互方式。以下是关于使用ActionScript 3.0 开发游戏的一些重要信息。 首先,ActionScript 3.0 具有面向对象编程的特性,如封装、继承和多态,这使得游戏开发更加灵活和可扩展。你可以创建各种类型的游戏对象,并根据需要设定它们的属性和行为。 其次,ActionScript 3.0 提供了丰富的图形和动画处理功能。你可以使用内置的绘图库来创建游戏场景、角色和特效,也可以通过使用动画库来制作复杂的动画序列。此外,还可以利用位图和矢量图形进行图像处理和渲染。 除了图形和动画,ActionScript 3.0 还提供了音频和视频处理能力。你可以使用内置的音频库来播放背景音乐和音效,还可以通过外部库或平台来处理视频和流媒体。 另外,ActionScript 3.0 支持网络功能,如Socket 和HTTP 连接等。这意味着你可以开发在线多人游戏,与其他玩家进行实时对战或合作。 此外,Adobe Flash 还提供了一套全面的开发工具和环境,如Adobe Animate 和Flash Builder。这些工具提供了可视化的界面设计、调试和测试的功能,可以帮助开发者更高效地创建和调整游戏。 总而言之,ActionScript 3.0 是一种强大的游戏开发语言,具有丰富的功能和工具。使用它,开发者可以创建出各种类型的游戏,并实现复杂的图形、动画、音频和网络交互效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值