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}
^,$,字符
补充:flash教程,动画技术