AS3 正则表达式详解

AS3常用正则表达式 AS3验证手机,验证数字,验证邮箱等常用的正则表达式 立即下载

1.新建正则表达式,有两种方式
var exp1:RegExp = new RegExp("ABCD","g");
var exp2 = /ABCD/g;//g global 表示全局匹配

trace("ABCDEFABCD".match(exp1)); 
trace("ABCDEFABCD".match(exp2));//输出ABCD,ABCD,其中,字条串.match(表达式),返回一个匹配到的数组

2.元字符
 
1)"." 表示匹配任意单个字符(如:1,e,中,*等),可以是数字,字母,汉字,标点等特殊字符
如:
   trace("this is a good Boo*".match(/.oo./g));//返回good,Boo*
但是如果匹配的正则子串本身要包含"."的话,就要用转义,如:
   trace("this is a good Boo.".match(/.oo\./g));//返回Boo.

2)"^" 表示匹配字符串的起始处
   (1) trace("ABAFT\nABALYN\nABOUT".replace(/^AB/g,'中国'));//把字符串起始处的"AB"替换为"中国"     返

回: 
    中国AFT\nABALYN\nABOUT
   输入后变成:
    中国AFT
    ABALYN
    ABOUT

在多行匹配中,匹配方式指定为m时,从每个\n后开始匹配

   (2) trace("ABAFT\nABALYN\nABOUT".replace(/^AB/gm,'中国'));//m multiline表示多行的意思,即多行匹配 
   返回:
    中国AFT\n中国ALYN\n中国OUT
   输入后变成:
    中国AFT
    中国ALYN
    中国OUT


注意:

   trace("ABAFT\nABALYN\nABOUT".replace(/^AB/,'中国'));

   trace("ABAFT\nABALYN\nABOUT".replace(/^AB/m,'中国'));

   以上两种方式匹配的结果都与(1)结果一样,所以要匹配多行时,"g"和"m"要同时使用

3)$ 表示匹配字符串结尾处,在多行匹配字符串中,匹配方式指定为m时,从每个\n前开始匹配

  

4)* 表示其前面的字符或表达式出现0次或多次,即任意次,次数>=0,如果0次或多次都满足的情况,取出现多次
   如:/bo*/ 表示o可以出现0次或多次,bo,boo,boook,b,bk都匹配

5)+ 表示其前面的字符或表达式至少出现1次以上,即次数>=1,如果1次或多次满足的情况,取出现多次
   如:/bo+/ 表示o可以出现1次以上,bo,boo,boook都匹配,但b,bk不匹配

6)? 表示其前面的字符哎呀表达式可出现一次也可不出现,如果出现与可不出现两种都满足的情况,取出现一次
   如:trace("This Book is Good Boooooook BoxBx".replace(/Bo?/g,'一'));
   返回:This 一ok is Good 一ooooook 一x一x
  其中Book既满足Bo,又满足B,也就是说o可出现也可不出现,取第一种情况,Bo

  《关于最小匹配和最大匹配(贪婪模式和非贪婪模式)》

   ".*"

  匹配 "内容A" "内容B" "内容C"   结果只有一个匹配结果, 就是"内容A" "内容B" "内容C", 

  贪心模式尽可能的匹配到更长的内容,于是从第1个双引号开始直到最后一个双引号

  ".*?"

  匹配 "内容A" "内容B" "内容C"

  结果有3个匹配结果, 分别是"内容A" 和 "内容B" 和 "内容C" . 非贪心模式尽可能少的匹配

 

7)() 表示把正则表达式的特定串组成一个组,作为一个整体
   如:trace("AGoGo Is A Name AGo's Father".replace(/A(Go)*/g,'哈'));
              把Go作为一个整体,即Go可出现任意次
   返回:哈 Is 哈 Name 哈's Father

   注意:组可以认为是正则表达式匹配模式的子模式,可以当做是一个普通的字符进行处理


    (1)String.match()和RegExp.exec()捕捉了整个正则匹配的子串,同时捕捉了组匹配的子串
    如:

     trace("this is a good boboobooobooook".replace(/(bo+)*/,'book'));
      bo+表示以b开头,o出现1次以上,然后再以组的形式出现任意多次
     返回:this is a good book
     /(bo+)*/ 这里相当于/(bo+)(bo+)(bo+)(bo+)/
   
    (2)组的反向引用,即把前面定义的组引用过来,如/(bo+).*\1kie/
     trace("this book is a goodbookie".replace(/(bo+).*\1kie/,'book')); 
     返回:this book
     /(bo+).*\1kie/ 这里相当于/(bo+).*(bo+)kie/
   
    (3)?:指定组所匹配的子串不被捕获
     trace("this book is a good bookie".match(/b(o+)k./));
     trace("this book is a good bookie".match(/b(?:o+)k./));
     返回:
      book ,oo
      book 

    (4)?=向前查找,即先匹配,再把符合某个特殊条件的取出来
     如:
     trace('flashmx flash8 flashcs3 flash4 flash5'.replace(/flash/g,'[FLAHSH]'));
     trace('flashmx flash8 flashcs3 flash4 flash5'.replace(/flash(?=cs)/g,'[FLAHSH]'));

     返回:
          [FLAHSH]mx [FLAHSH]8 [FLAHSH]cs3 [FLAHSH]4 [FLAHSH]5
          flashmx flash8 [FLAHSH]cs3 flash4 flash5

      /flash(?=cs)/g是在/flash/g的基础之上加了(?=cs),
      这样符合条件的有flashcs3 flashcs4 flashcs5三项,


     ?!向后查找,即先匹配,再把符合某个特殊条件的取出来
     如:
      trace('flashmx flash8 flashcs3 flashcs4 flashcs5'.replace(/flash/g,'[FLAHSH]'));
      trace('flashmx flash8 flashcs3 flashcs4 flashcs5'.replace(/flash(?!cs[3-5])/g,'[FLAHSH]'));
     返回:
      [FLAHSH]mx [FLAHSH]8 [FLAHSH]cs3 [FLAHSH]cs4 [FLAHSH]cs5
      [FLAHSH]mx [FLAHSH]8 flashcs3 [FLAHSH]cs4 [FLAHSH]cs5

    
      /flash(?!cs[3-5])/g是在/flash/g基础之上加了(?!cs[3-5]),
      即除了flashcs3,flashcs4,flashcs5以上的所有项
   

     ?=与?!相斥


8)[] 表示一个范围,里面的字符满足一个即可
   如:/[bk]/ b,k都满足
      /[a-zA-Z0-9] 26个小写字母,26个大写字母,10个数字其中任一个都满足


   (1)
    trace("32o498dslkfjjlkjLDSJFL70".match(/[^0-9]/g));
    trace("32o498dslkfjjlkjLDSJFL7^0".match(/[^0-9]/g));
    trace("32o498dslkfjjlkjLDSJFL7^0".match(/[0-9^]/g));

    返回: o,d,s,l,k,f,j,j,l,k,j,L,D,S,J,F,L
     o,d,s,l,k,f,j,j,l,k,j,L,D,S,J,F,L,^
     3,2,4,9,8,7,^,0


    如果把^放在[]字符集的开始处,表示取反的意思,如[^0-9],表示非数字,相当于\D
    如果把^放在[]字符集的开始处,且被匹配的字符串含有^字符时,即表示取反的意思,又把^作为一个普   

通字符来看待,这样,非数字和^都满足,如上面的第二trace()   
  
   (2)在字符集中,"." 并不是一个元字符,而是当作一个普通字符看待,相当于用"\."转义
    trace('sdfdsfdfl34l3re.'.match(/[0-9.]/g));
    trace('sdfdsfdfl34l3re.'.match(/[0-9\.]/g));
   
    返回:
     3,4,3,.
     3,4,3,.
   

   (3)在字符集中,只有"-"和"\"是被认为是转义的,
      如:[0-9] 表示从0到9的任一数字
    [\n\t] 表示\n换行和\t制表位

    trace('ldslfasdasd\nksdjlsd\t324123424'.replace(/[\n\t]/g,'转义'));
    返回:ldslfasdasd转义ksdjlsd转义324123424


9)| 表示任选一,与[]功能相似
   如:/b|k/ b,k都满足
      /gook|book/ gook,book都满足
     trace("this is a good cook book".replace(/good|book/g,'哈'));
     返回:this is a 哈 cook 哈

   注意:(1)
    trace("this is a good book".replace(/[gk]/g,'哈'));
    trace("this is a good book".replace(/g|k/g,'哈'));

    返回:this is a 哈ood boo哈
         this is a 哈ood boo哈   
    以上两个表达式效果是一样的
   

    但是:trace("this is a good cook book".replace(/good|book/g,'哈'));
       trace("this is a good cook book".replace(/[goodbook]/g,'哈'));
  
    返回:this is a 哈 cook 哈
       this is a 哈哈哈哈 c哈哈哈 哈哈哈哈
    以上两个表达式效果是不一样的,因为|把good和book作为一个整体,而[]把good和book
    合在一起,即goodbook,也就是说只要满足g,o,d,b,k其中任意一个字符就行了

      


10)- 表示一个范围,与[]一起用
   如:trace("lLJ62-76DS5LFd-4Jlk-中国".match(/[a-z\-]/g));
    [a-z\-]其中,a-z中的"-"是一个元字符,表示从a到z的一个范围,而\-转义后表示"-"字符


3.元序列
1){n}表示在它前面的字符或表达式必须重复n次,即次数=n
   如: /bo{2}/,其中o要重复2次,boo满足,boook不满足

2){n,}表示在它前面的字符或表达式必须重复n次以上,即次数>=n,如果既满足n,又满足n+1,取n+1,即取最大的
   如: /bo{2,}/,其中o要重复2次以上,boo满足,boook也满足

3){n,m}表示在它前面的字符或表达式必须重复n到m次以上,即n<=次数<=m,如果既满足n,又满足n+1,取n+1,即取最大的
   如: 
    trace("This Book is Good Boooooook BoxBx".replace(/Bo{2,6}/g,'哈'));
    返回:This 哈k is Good 哈ok BoxBx

    trace("This Book is Good Boook BoxBx".replace(/Bo{2,6}/g,'哈'));
    返回:This 哈k is Good 哈k BoxBx

4)\d 表示匹配数字字符,即0-9
   \D 表示匹配非数字字符,与\d,即除了0-9之外的字符
   \w 表示匹配一个单词字符,即26个小写字母,26个大写字母,10个数字,和下划线
          \W 表示匹配非单词字符,与\w反义  
   \s 表示匹配任意空白字符
     \S 表示匹配任意非空间字符,与\s反义


4.标记
i ignoreCase 忽略大小写
g global   全局匹配
m multiline 多行模式
s dotall   指定元字符"."是否匹配"\n",即"\n"也作为一个普通字符处理
   如:
    trace("this is a book\nkie".replace(/bo+k.kie/g,'哈'));
    trace("this is a book\nkie".replace(/bo+k.kie/gs,'哈'));//在这里,\n被看成是一个普通字符

   返回:
    this is a book
    kie
    this is a 哈

x extend   扩展模式,在扩展模式下,正则表示式的空白字符被忽略了,如/c _ d/ 的效果相当于 /c_d/  


5.正则表达式的属性
source 可得到正则表达式的匹配模式,如:trace(/\d\d/.source);输出:\d\d
lastIndex 表示正则表达式在字符串中的起始匹配位置,只有当标记为g时才起作用

6.正则表达式的方法
exec(字符串) 返回一个Object
test(字符串) 返回一个Boolean值

  

2012/4/20 补充:

AS3正则表达式只能匹配同一行的内容,如果匹配的内容分散到多行是匹配不到的;

所以,如果必要应该先把换行符替换掉(content = content.replace(/\n/gi, "");)

然后再做其它匹配。


转自我的百度空间:http://hi.baidu.com/wojiubaibudu/item/20259da5991a8cdd5bf1910f

QtNodeEditor实战:构建高效可视化编程环境的完整指南 本文是QtNodeEditor实战的完整指南,详细介绍了如何利用这一基于Qt框架的可视化编程工具构建高效节点编辑器。内容涵盖从快速集成、自定义节点模型到深入理解MVC数据流架构,并提供了样式定制、场景序列化、动态端口等高级功能的实现方法,帮助开发者快速搭建灵活、可维护的可视化编程环境。 阅读详情

相关推荐

基于ANSYS的电磁兼容仿真教程

最近,在做某系统的EMC仿真,使用ANSYS套件,对仿真学习做简要记录。本书简介与目录如下:本书配套有:视频教程+工程源文件+彩色仿真图片,下载链接如下:(审核中)第1章 基础知识1.1 电磁兼容基础​​​MS2、EMC三要素:3、 国际无线电干扰特别委员会标准:CISPR标准4、电磁兼容测试认证:传导发射(CE)、传导敏感度(CS)、辐射发射(RE)和辐射敏感度(RS)测试。

weixin_42508010的博客 2052

as3.0 正则表达式

AS3 正则表达式详解 1.新建正则表达式,有两种方式 var exp1:RegExp = new RegExp("ABCD","g"); var exp2 = /ABCD/g;//g global 表示全局匹配 trace("ABCDEFABCD".match(

roadProgram的专栏 1375

Cesium中实现阴影率分析

看到群里有人在研究这个,所以看了一下。主要是模仿超图的,实现原理超图有做回答:但其实超图的这个实现方式还是过于复杂,原因是:既然是获取太阳的日照阴影,而Cesium中原本就存在太阳,且能投射阴影,因此其实并不需要再次计算太阳位置并计算视锥获取深度图,直接使用Cesium原生的太阳深度图即可。

weixin_43481439的博客 2216

浅谈as中正则表达式

可能大家对正则表达式会感到很陌生,或者有点印象的人会觉得它很晦涩难懂。虽然在我们看起来正则表达式确实很晦涩难懂。但如果熟悉后,其实你会发现 正则表达式是一种简单而功能强大的标准。 正则表达式的用于查找和处理字符串中的匹配文本的模式。它能用很简短的语句来完成一项复杂繁琐的字符串查找替换匹配处理。 好了下边详细说说在as3中正则表达式。 在ActionScript 3.0 按照 ECMASc...

TTS 782

Abaqus 单元与全局刚度矩阵导出实战指南:从INP修改到结果解析

本文提供了Abaqus中导出单元刚度矩阵和全局刚度矩阵的完整实战指南。通过详细步骤讲解INP文件修改、关键指令插入及结果文件解析,帮助工程师、研究人员和二次开发者深入理解有限元软件内核,实现理论验证、二次开发与深度问题调试。

k8s6orchestrator的博客 898

深入浅出块I/O子系统(四)请求处理过程

BIO请求处理的流程 函数scsi_request_fn()代码(摘自文件drivers/scsi/scsi_lib.c) (1)static void scsi_request_fn(struct request_queue *q) (2)int scsi_dispatch_cmd(struct scsi_cmnd *cmd) { host->hostt->queuecommand(host, cmd) } (3)struct sas_internal *i sas_queuec

sinat_37817094的博客 1348

as3 正则表达式(比较齐全)

正则表达式是AS3比较重要的一个部分,具体内容如下:   //正则表达式有四个部分。1元子符。2元序列。3标志。4数量表达符。 //下面是元字符部分 //现在我们来看看元字符: ^ $ \ . * + ? ( ) [ ] { } | //^匹配字符串的开头 varpattern:RegExp=/^小虫/; var str:String="小虫是好人"; trace(str,

u013406800的专栏 1156

Zookeeper+Hadoop+Spark+Flink+Kafka+Hbase+Hive 完全分布式高可用集群搭建(保姆级超详细含图文) 附安装包网盘下载

Hadoop+Spark+Flink+Zookeeper+Kafka+Hbase+Hive完全分布式高可用集群搭建 Hadoop高可用集群搭建 Spark高可用集群搭建 Flink高可用集群搭建 Zookeeper高可用集群搭建 Kafka高可用集群搭建 Hbase高可用集群搭建 Hive高可用集群搭建 mysql搭建 jdk部署 大数据集群环境搭建

Mr.L-OAM的博客 2万+

BGP高级特性—— AS-PATH 正则表达式

BGP过滤表达式 字和元字符特殊字符一个典型的AS_PATH过滤器如下所示:ip as-path access-list 83 permit ^1_7-01_(_5646_|_1240).*在关键字permit后面的字符串是一个正则表达式。 表1 关于AS_PATH访问列表的正则表达式元字符特殊字符 元字符特殊字符 匹配内容 . 任何单一字符,包括空格 ...

qq_62311779的博客 1万+

AI之KE:Knowledge Engineering知识工程的简介、发展、应用案例之详细攻略

AI之KE:Knowledge Engineering知识工程的简介、发展、应用案例之详细攻略 目录 Knowledge Engineering知识工程的简介 0.1、What 0.2、How 0.3、Why 1、知识工程过程的5个活动 2、知识图谱的应用 Knowledge Engineering知识工程的发展 1、前知识工程时期——1950-1970时期:图...

头部AI社区如有邀博主AI主题演讲请私信—心比天高,仗剑走天涯,保持热爱,奔赴向梦想!低调,专注,谦虚,自律,反思,成长,还算比较正能量的博主,公益免费传播…内心特别想在AI界做出一些可以推进历史进程影响力的技术(兴趣使然,有点小情怀,也有点使命感呀 5335

【Arduino 动手做】构建一个迷你 Las Vegas RGB LED 球体

《Arduino迷你拉斯维加斯球体项目:15岁少年的创意挑战》 15岁的Ben通过本项目展示了如何利用Arduino平台制作一个经济实惠的迷你拉斯维加斯球体夜灯。该项目涉及LED选择(采用WS2812B可编程灯带)、电子元件配置(含Arduino Nano微控制器和红外遥控)以及3D建模设计(100毫米直径球体)。项目难点包括LED布局优化、供电方案设计和3D打印外壳制作。Ben详细记录了从背景研究、电路设计到最终实现的完整过程,特别强调了分辨率与成本的平衡,以及如何通过白色扩散器改善视觉效果。这个项目不仅

雕爷学编程 1024

正则表达式随摘

  普通文字和符号:A-Z a-z 0-9 以及不是元字符的其它符号 输入Unicode字符时,同String一样,使用\uXXXX 元字符:三三二三个一(记忆口诀) 三个括号: {[( 三个匹配次数: *+? 星加问 两个断言: ^$ 定头定尾 三个一: | 选择符 . 模糊匹配 \ 转义 三个括号: {定义匹配次数 [字符集 (子模式 三个匹配次数: * 匹配出...

ithero 237

Python爬虫实战:利用Selenium与异步技术高效获取雪球财经数据

雪球财经作为国内领先的投资社交平台,汇聚了大量股票数据、财经资讯和投资者观点。对于金融数据分析师、量化投资者和研究人员来说,获取雪球平台的实时数据具有重要价值。然而,雪球网站采用了多种反爬虫机制,包括动态内容加载、请求频率限制和用户行为检测等,使得传统爬虫技术难以有效获取数据。本文将介绍如何使用Python的最新爬虫技术,包括Selenium WebDriver、异步请求处理和智能等待策略,来高效、稳定地爬取雪球财经数据。我们将重点解决以下几个技术难点:动态加载内容的处理登录状态维持与模拟。

2201_76125261的博客 1107

AS3中的正则表达式

摘自:http://www.cnblogs.com/fireyang/archive/2006/10/23/537192.html  AS3中的正则表达式(原创)   AS3中的正则表达式 一、定义方式,可以有两种var pattern1:RegExp = new RegExp("test-//d", "i");var pattern2:RegExp = /te

冰峰 的专栏 2335

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

AS3.0正则表达式介绍

  正则表达式描述字符模式,通常用于验证字符串是否符合特定模式,或者替换查找与模式匹配的文本。以下介绍AS3.0正则表达式中常用元素:  元字符           ^ (尖号)                            匹配字符串的开头。设置 m (multiline) 标志后,尖号还匹配行的开头。请注意,尖号用在字                      

学习笔记 4014

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

AS3.0 正则表达式规则

谈谈正则表达式,AS3.0中引进了正则表达式。正则表达式是用于验证文本值是否符合特定模式。 正则表达式有四个部分。1元子符。2元序列。3标志。4数量表达符。 可以这样看 pattern RegExp= /匹配字符串元字符元序列/标志当然顺序可能不完全是这样.别把他想的太复杂其实他就是个组合。 现在我们来看看元字符: ^ $ . * + ? ( ) [ ] { } | 前面说

lovequilt的专栏 1607

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

as3正则表达式

1.新建正则表达式,有两种方式var exp1:RegExp = new RegExp("ABCD","g");var exp2 = /ABCD/g;//g global 表示全局匹配 trace("ABCDEFABCD".match(exp1));trace("ABCDEFABCD".match(exp2));//输出ABCD,ABCD,其中,字条串.match(表达式),返回一个...

119

as3正则表达式的使用

谈谈正则表达式,AS3.0中引进了正则表达式。正则表达式是用于验证文本值是否符合特定模式。正则表达式有四个部分。1元子符。2元序列。3标志。4数量表达符。可以这样看 pattern RegExp= /匹配字符串 元字符 元序列/标志 当然顺序可能不完全是这样.别把他想的太复杂其实他就是个组合。现在我们来看看元字符: ^ $ \ . * + ? ( ) [ ] { } |前面说的是元字符串的使用1....

TTS 166

as3 正则表达式

正则表达式是AS3比较重要的一个部分,具体内容如下:   //正则表达式有四个部分。1元子符。2元序列。3标志。4数量表达符。 //下面是元字符部分 //现在我们来看看元字符: ^ $ \ . * + ? ( ) [ ] { } | //^匹配字符串的开头 var pattern:RegExp=/^小虫/; var str:String="小虫是好人"; t

roaylchen的博客 851

AS3中的正则表达式(原创)

AS3中的正则表达式 一、定义方式,可以有两种 varpattern1:RegExp=newRegExp("test-\\d","i");varpattern2:RegExp=/test-\d/i; 1)使用new来新建一个RegExp对象,其中参数为1)表达式字符串2)表达式的参数,这种方式如果要用\,一定要用\\来转义。2)直接采用/形式,以把表达式的内容...

198

AS3 的正则又有一些不一样的用法

AS3代码: /* * 极酷播放器提示:去除字符串前面的空格和跳格符 */*/ var src:String=" Hello! "; trace("\""+src+"\""); //原文本 trace("\""+src.replace(/^\s*/g,"")+"\""); //去掉前面的空格 trace("\""+src.replace(/\s*$/g,"

Jave.Lin 的学习笔记 873

flash AS3 RegExp简单功能用法(转)

谈谈正则表达式,AS3.0中引进了正则表达式。正则表达式是用于验证文本值是否符合特定模式。   正则表达式有四个部分。1元子符。2元序列。3标志。4数量表达符。   可以这样看 pattern RegExp= /匹配字符串 元字符 元序列/标志 当然顺序可能不完全是这样.别把他想的太复杂其实他就是个组合。   现在我们来看看元字符: ^ $ \ . * + ? ( ) [ ] {...

AS3 337
上一篇: AS3 setTimeOut、setInterval、Timer 的区别和用法
下一篇: Flash性能优化
cceevv
博客等级 码龄18年 53粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值