FLASH AS3 正则表达式:RegExp

正则表达式是AS3的重大特色之一。
1、正则表达式的概念

正则表达式是用来描述字符串特征的标准方式。

正则表达式由两个部分组成:一部分由双斜杠来标示字符串起始位置,这部分叫匹配模式,用来描述字符串特征的;另一部分是在第二个斜杠后面的字母,叫做正则表达式的标志位,是gimsx这五个字母的组合。

例如:var zfc: RegExp=/hello/g;

正则表达式还可以使用正则表达式类的构造函数来生成一个正则表达式实例

例如:var zfc: RegExp=new RegExp(“hello”,”g”);

可以看出正则表达式的构造函数只不过是将匹配模式和标志位分开成两个字符串,当成参数,来生成正则表达式的实例。标志位是可选参数,如果有为空或者不属于”gimsx”的字母出现,那么标志位参数将被忽略。

使用构造函数生成正则表达式实例,要注意由于匹配模式作为String型,要注意相关的字符转义,比如单引号和双引号。

2、正则表达式的引擎机制

AS3使用功能强大的NFA引擎,NFA引擎是一种Greedy的执行方式,一旦找到匹配立刻返回,不管后面是否还有匹配的字符,最先返回最左边的匹配。

3、正则表达式语法

①正则表达式中的文字符号

  由文字符号组成的正则表达式是最简单的类型,文字符号包括字母、符号和单词。中文也属于文字符号,它是用Unicode码表示的。

  文字符号分为3种,即普通文字和符号、元字符和不可见字符。但是,如果使用正则表达式构造函数来匹配正斜杠的话,就不需要转义了,但不可见字符还是需要转义的。

正则表达式中的字符集

字符集是指由中括号里定义的字符集合。字符集中的字符只要有一个符合特征描述,那么就会被认为匹配。字符集只能匹配一个字符

在字符集中我们可以使用连字符“-”来定义一个范围。3个常用的字符集[A-Z]、[a-z]、[0-9]

取反符号(^)在字符集中的作用是对方括号里面的字符集取反。即使用了取反符号,只要是不符合字符集描述的字符就符合匹配。

字符集中需要转义的特殊字符。我们只需对正则表达式字符集元字符中的“[^-”进行转义。

③特殊的点号(.)

正则表达式中用“.”号来表示任何字符。但“.”号不匹配换行符(n)。AS3提供一个单行模式标志符(s)来让“.”号匹配换行符。

④选择符(|)

选择符“|”表示选择,用来匹配多个可能的正则表达式中的一个。

⑤括号与分组

用圆括号将表达式的一部分括起来,就会将这部分表达式定义成组。组将被当成一个整体来进行操作。这样的操作,被称为分组。

分组一般有如下应用:

●     用来限定选择符的作用范围。

●     可以指定括号中的内容重复次数。

⑥用正则表达式描述字符串的重复

显式限定符是使用花括号{}及其中的数字值表示模式出现次数的上下限的方式。除了显式限定符,还有非显式限定符

如果限定符前面是跟着字符集,那么就限定符合字符集描述的特征字符重复次数。

如果限定符前面是跟着组,那么就限定符合组内表达式描述的特征字符串重复次数。

⑦正则表达式定位符及其含义

“^”匹配输入字符串的开始位置

“$”匹配输入字符串的结束位置

“b” 匹配一个单词边界,也就是指单词和空格间的位置闪吧新社区 KvvwH1D*`

“B” 匹配非单词边界

⑧正则表达式的5个标志位

“g” global  匹配多个

“i” ignoreCase 不区分大小写

“m”multiline   设置此标志后,$和^可以分别匹配行的开头和结尾

“s” dotall     设置此标志后,“.”点号可以匹配换行符(n)

“x” extended  允许扩展的正则表达式

⑨正则表达式中元字符优先级

%z a-P
相同优先级总左到右,不同优先级先高后低。

元字符优先级如下:

(), (?:), (?=), []

+, ?.,{n},{n,},{n,m}

^,$,字符

时间: 2024-08-27 09:13:53

FLASH AS3 正则表达式:RegExp的相关文章

Flash AS3制作个性的旋转圆形网页导航

核心提示:Flash AS3制作个性的旋转圆形网页导航教程. Flash AS3制作个性的旋转圆形网页导航. 1.用矩形工具绘制一个黑色的矩形,转换为MC影片剪辑,打开属性窗口 2.双击这个影片剪辑编辑它,使用文本工具,设置为动态文本,绘制一个区域,设置颜色是白色,命名实例名为abelBtn. 3.回到场景1,删除掉刚刚建立的影片剪辑. 4.我们选择第一帧,然后打开动作面板,输入下面代码,主要是为了导入Tweenlite engine. import com.greensock.*; impor

Flash AS3.0实现逼真喷泉效果

核心提示:Flash AS3.0实现逼真喷泉效果教程. 我们将介绍利用速度向量和重置对象的技巧来实现喷泉效果.所谓向量就是有方向的量.比如一辆车从东向西以80公里每小时的速度行驶,那么我们就可以得到汽车的速度向量,它包括两个元素:速度,每小时80公里,方向,由东向西. 下面我们来分析一下喷泉是怎样形成的? 喷泉是若干个水珠向上喷射,然后又受重力影响掉回地面.这个过程的速度向量有哪些,具体又是怎么的呢?很容易发现至少的两个力,一个是使水珠向上喷射的外力,一个是使水珠掉回地面的重力. 外力的速度向量

Flash AS3.0菜鸟学飞教程代码的位置

早期版本的ActionScript代码可以写在帧.按钮.影片剪辑.as文件等位置,而Flash AS3.0代码的位置发生了重大的改变,只能写在帧及as文件中. 虽然Flash AS3.0支持把代码写在时间轴中,但在实际应用中,如果把很多的代码放在时间轴中,会导致代码很难管理.或者说,用类来组织大量的代码更为合适,因为类代码都是放在as文件中的. 除了把代码放在时间轴上,还可以把代码放在外部文件中,比如,放在服务器的txt文件中,然后把这些外部数据加载到fla文件里. 外部文件代码 以往都是在时间

Flash AS3.0构建简单的声音可视化程序(波型图)

本例为Flash AS3.0实例教程,在教程中我们将学习运用SoundMixer.computeSpectrum() 方法来构建简单的声音可视化程序(即波形图),希望能给朋友们带来帮助~~ AS3.0构建简单的声音可视化程序(波型图): 开发"> 使用 SoundMixer.computeSpectrum() 方法来显示声音波形图: import flash.display.Graphics; import flash.events.Event; import flash.media.So

flash as3.0教程专题

积少成多 Flash(ActionScript 3.0 & Flex 3.0) 系列文章索引 积少成多Flash(7) - ActionScript 3.0交互之鼠标事件和键盘事件 积少成多Flash(6) - ActionScript 3.0绘图之图形和转换 积少成多Flash(5) - ActionScript 3.0 实例之闹钟(自定义事件,画 积少成多Flash(4) - ActionScript 3.0 实例之Hello World,时钟, 积少成多Flash(1) - ActionS

Flash AS3简单制作百叶窗图片特效

Flash AS3简单制作百叶窗图片特效,适合初学者的教程,希望大家能练习! 图片百叶窗特效: 制作过程: 任意选择一个图片,当做本例动画中的图片,我们将使该图片达到百叶窗动画特效. 然后按Ctrl+J修改文档的属性,设置任何颜色为背景都可以,大小调整到和自己选择的图的大小一样大就可以了,幁频设置为38fps 就可以. 把图层1命名为photo,把外部准备的图片导入到舞台,然后按F8转变为原件,类型是影片剪辑, 然后拖拽到舞台,打开属性面板,设置如下:

Flash AS3简单制作美女图片缓动特效gif动画

  Flash AS3简单制作美女图片缓动特效gif动画过程,本教程主要适合初学者,希望大家练习,可以先看下相关文章:Flash AS3简单制作图片变成百叶窗特效教程 制作步骤: 新建立文档,调整文档属性,如下图设置: 和上一个实例教程一样,导入一个图片是影片剪辑,然后制作一个文字按钮,设置如下: 然后再建立一个新图层,在第一帧中添加如下代码: 代码如下: import fl.transitions.*; import fl.transitions.easing.*; myButton.addE

Flash AS3简单制作图片变成百叶窗特效教程

  Flash AS3简单制作图片变成百叶窗特效方法,适合初学者的教程,希望大家能练习! 图片百叶窗特效: 制作过程: 任意选择一个图片,当做本例动画中的图片,我们将使该图片达到百叶窗动画特效. 然后按Ctrl+J修改文档的属性,设置任何颜色为背景都可以,大小调整到和自己选择的图的大小一样大就可以了,幁频设置为38fps 就可以. 把图层1命名为photo,把外部准备的图片导入到舞台,然后按F8转变为原件,类型是影片剪辑, 然后拖拽到舞台,打开属性面板,设置如下: 然后创建一个新图层,绘制一个文

Flash AS3制作茶杯震动gif动画效果

 下面小编就为大家介绍Flash AS3制作茶杯震动gif动画效果,教程很不错哦,也很简单,一起来学习吧! 效果如下:(用鼠标指向右侧的茶壶可以看到震动效果) 制作过程如下: 首先准备一个图片当做背景,如下: 然后再建立一个新图层,导入一个茶壶素材,然后把它转变为影片剪辑,之后命名实例名字. 目前存在两个图层,然后我们再新建立一个放置ACTION的图层,代码如下:   代码如下: var coordX:Number = shaker_mc.x;  var coordY:Number = shak