[AS3]as3中正则表达式详细介绍(5)
下边说说数量表示符
使用数量表示符指定字符或序列在模式中的重复次数
数量表示符
数量表示符元字符 |
描述 |
---|---|
|
匹配前面重复零次或多次的项目。 |
|
匹配前面重复一次或多次的项目。 |
|
匹配前面重复零次或一次的项目。 |
和
|
指定前一项目的数值数量或数量范围:
|
您可以将数量表示符应用到单个字符、字符类或组:
/a+/
匹配重复一次或多次的字符a
。/\d+/
匹配一个或多个数字。/[abc]+/
匹配重复的一个或多个字符,这些字符可能是a
、b
或c
中的某个。/(very, )*/
匹配重复零次或多次的后跟逗号和空格的单词very
。
逻辑"或"
逻辑"或"
在正则表达式中使用 |
(竖线)字符可使正则表达式引擎考虑其它匹配。例如,下面的正则表达式匹配单词 cat、dog、pig 和 rat
中的任意一个:
var pattern:RegExp =
/cat|dog|pig|rat/;
您可以使用括号定义组以限制逻辑"或"字符 | 的范围。下面的正则表达式匹配 cat
后跟 nap
或 nip
:
var pattern:RegExp =
/cat(nap|nip)/;
组
组
您可以使用括号在正则表达式中指定组,如下所示:
/class-(\d*)/
之前在字符类那里已经提到过了。下边再 说说
组
组是模式的子部分。您可以使用组实现以下操作:
- 将数量表示符应用到多个字符。
- 界定要应用逻辑"或"(通过使用 | 字符)的子模式。
- 捕获正则表达式中的子字符串匹配(例如,在正则表达式中使用 \1 以匹配先前匹配的组,或类似地在 String 类的 replace() 方法中使用 $1)。
标志和属性
最后说的是
标志和属性
下表列出了可以为正则表达式设置的五种标志。每种标志都可以作为正则表达式对象属性进行访问。
标志 |
属性 |
描述 |
---|---|---|
g |
global |
匹配多个匹配。 |
i |
ignoreCase |
不区分大小写的匹配。应用于 A-Z 和 a-z 字符,但不能应用于扩展字符,如 E 和 e。 |
m |
multiline |
设置此标志后,$ 和 ^ 可以分别匹配行的开头和结尾。 |
s |
dotall |
设置此标志后,.(点)可以匹配换行符 (\n)。 |
x |
extended |
允许扩展的正则表达式。您可以在正则表达式中键入空格,它将作为模式的一部分被忽略。这可使您更加清晰可读地键入正则表达式代码。 |
请注意这些属性都是只读属性。您在设置正则表达式变量时,可以设置标志(g、i、m、s 和 x),如下所示:
var re:RegExp = /abc/gimsx;
但是,您无法直接设置命名属性。例如,下列代码将导致错误:
var re:RegExp = /abc/; re.global = true; // 这会产生错误。
好了了解了上边的基础内容后,我们举几个例子来深入学习下
想一开始提出的一个匹配邮箱地址的正则表达式:
/([0-9a-zA-Z]+[-._+&])*[0-9a-zA-Z]+@([-0-9a-zA-Z]+[.])+[a-zA-Z]{2,6}/
现在看起来是不是已经比较简单明白了呢?
先看第一段
([0-9a-zA-Z]+[-._+&])
它表示一个组而这个组里边前边必须由一个多则多个以数字或者字母组成,而后边必须带是 -._+&这5个字符中的任意一个。
而在组的后边用了数量表示符*
([0-9a-zA-Z]+[-._+&])*
到这,这一句就是
它表示一个组而这个组里边前边必须由一个多则多个以数字或者字母组成,而后边必须带是 -._+&这5个字符中的任意一个。这个组的0个或者多个这样的组合
([0-9a-zA-Z]+[-._+&])*[0-9a-zA-Z]+@
而这样的组合之后必须带一个或多个由字符或者数字组成的字符,然后或边必须跟一个@字符
([-0-9a-zA-Z]+[.])+[a-zA-Z]{2,6}
这句的意思就是 一个或多个有字符或数字组成的字符类之后再带一个字符"."最后必须带一个有2-6个字母组成的字符串
其实上边我说的这些大家可以在flash cs3-4的自带帮助里有跟详细的说明。
好了先写到这。这些入门后以后还会在出相关的正则表示式的具体实例。
热门文章推荐
- [HLS]做自己的m3u8点播系统使用HTTP Live Streaming(HLS技术)
- [FMS]FMS流媒体服务器配置与使用相关的介绍
- [AS3]什么是M3U8,与HTML5的区别是什么
- AS2.0 让flash自适应全屏,并且不自动缩放
- [AS3]as3.0的sound类常用技巧整理
- [AS3]as3与ByteArray详解、ByteArray介绍、ByteArray用法
- 关于RTMP,RTMPT,RTMPS,RTMPE,RTMPTE协议的介绍
- [JS]分享浏览器弹出窗口不被拦截JS示例