[AS3]AS3.0正则规范的教程(看完,一定会写正则)(3)
数量表示符 使用数量表示符指定字符或序列在模式中的重复次数,如下所示: 数量表示符元字符 描述 *(星号) 匹配前面重复零次或多次的项目。 +(加号) 匹配前面重复一次或多次的项目。 ?(问号) 匹配前面重复零
数量表示符
使用数量表示符指定字符或序列在模式中的重复次数,如下所示:
数量表示符元字符
描述
*(星号)
匹配前面重复零次或多次的项目。
+(加号)
匹配前面重复一次或多次的项目。
?(问号)
匹配前面重复零次或一次的项目。
{n}
{n,}
和
{n,n}
指定前一项目的数值数量或数量范围:
/A{27}/ 匹配重复 27 次的字符 A。
/A{3,}/ 匹配重复 3 次或更多次的字符 A。
/A{3,5}/ 匹配重复 3 到 5 次的字符 A。
您可以将数量表示符应用到单个字符、字符类或组:
/a+/ 匹配重复一次或多次的字符 a。
/d+/ 匹配一个或多个数字。
/[abc]+/ 匹配重复的一个或多个字符,这些字符可能是 a、b 或 c 中的某个。
/(very, )*/ 匹配重复零次或多次的后跟逗号和空格的单词 very。
您可以在应用数量表示符的括号组内使用数量表示符。例如,下面的数量表示符匹配诸如 word 和 word-word-word 的字符串:
/w+(-w+)*/
默认情况下,正则表达式执行所谓的“无限匹配”。正则表达式中的任何子模式(如 .*)都会尝试在字符串中匹配尽可能多的字符,然后再执行正则表达式的下一部分。例如,使用以下正则表达式和字符串:
var pattern:RegExp = /<p>.*</p>/;
str:String = "<p>Paragraph 1</p> <p>Paragraph 2</p>";
正则表达式匹配整个字符串:
<p>Paragraph 1</p> <p>Paragraph 2</p>
但是,假如您只想匹配一个 <p>...</p> 组。则可以通过以下操作实现:
<p>Paragraph 1</p>
在所有数量表示符后添加问号 (?) 以将其更改为所谓的“惰性数量表示符”。例如,下面的正则表达式使用惰性数量表示符 *? 匹配 <p> 后跟数量最少(惰性)的字符,再跟 </p> 的模式:
/<p>.*?</p>/
有关数量表示符,请牢记以下几点:
数量表示符 {0} 和 {0,0} 不会从匹配中排除项目。
不要结合使用多个数量表示符,例如 /abc+*/ 中。
在除非设置 s (dotall) 标志,否则不会跨越多行,即使后跟 * 数量表示符。例如,请考虑使用以下代码:
var str:String = "<p>Testn";
str += "Multiline</p>";
var re:RegExp = /<p>.*</p>/;
trace(str.match(re)); // null;
re = /<p>.*</p>/s;
trace(str.match(re));
// output: <p>Test
// Multiline</p>
热门文章推荐
- [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示例
请稍候...