(转)AS3正则:元子符,元序列,标志,数量表达符:

AS3正则:元子符,元序列,标志,数量表达符

as3正则:元子符,元序列,标志,数量表达符

可以这样看:

pattern RegExp= /匹配字符串 元字符 元序列/标志

当然顺序可能不完全是这样.别把他想的太复杂其实他就是个组合。

现在我们来看看元字符: ^ $ \ . * + ? ( ) [ ] { } |

前面说的是转义字符串的使用

元字符

1.^的用法:匹配字符串的开头

var pattern:RegExp=/^小虫/;

var str:String=”小虫是好人”;

trace(str, ” is valid:”, pattern.test(str));小虫是好人 is valid: true

2.$的用法:匹配字符串的结尾

var pattern:RegExp=/lizhen$/;

var str:String=”My name is lizhen”;

trace(str, ” is valid:”, pattern.test(str));小虫是好人 is valid: true

仔细看一下两个符号在匹配字符串中的位置,注意:如果同时使用^符号和$符号,将进行精确匹配。

3.\的用法:转义

如果匹配字符串中包含有”/”比如 1/2 的时候,使用如下定义

var pattern:RegExp = /1\/2/;

var str:String=”1/2是多少?”;

trace(str, ” is valid:”, pattern.test(str));1/2是多少? is valid: true

如果匹配字符串中包含有”"比如 “lizhen” 的时候,使用如下定义

var pattern:RegExp=/\”lizhen”/;

var str:String=”My name is \”lizhen\”";

trace(str, ” is valid:”, pattern.test(str));My name is “lizhen” is valid: true

4.*的用法:匹配0个或多个前面的字符.

var pattern:RegExp=/我的*/;

var str:String=”我的我的我的”;或者var str:String=”我的”

trace(str, ” is valid:”, pattern.test(str));我的我的… is valid: true

5.+的用法:匹配至少一个前面的字符

var pattern:RegExp=/我的+/;

var str:String=”我的ID是…”;或者var str:String=”我的”

trace(str, ” is valid:”, pattern.test(str));我的ID是… is valid: true

注意+和*的区别。如果var str:String=”我的”那就会显示false

6.?的用法:匹配0个或1个前面的字符

var pattern:RegExp=/天?/;

var str:String=”一天快乐”;或者var str:String=”天天快乐”;

trace(str, ” is valid:”, pattern.test(str));一天快乐 is valid: true

7..的用法:匹配任意单个字符

var pattern:RegExp=/天./;

var str:String=”一天快乐”;或者var str:String=”天天快乐”;

trace(str, ” is valid:”, pattern.test(str));一天快乐 is valid: true

8.[ ]的用法:匹配某一个范围而不局限于具体的单个字符

var pattern:RegExp=/[a-z]/

var str:String=”a”

trace(str, ” is valid:”, pattern.test(str));a is valid: true

9.( )的用法:这个就相当于是个集合。

var pattern:RegExp=/([a-z][A-Z][0-9])+/ 比如说这个就是定义了一个四个字符的字符串第一个字符是a到z之间的字符第二个是A到Z之间的字符第三个是0-9之间的字符,第四个重复前面的数字。

var str:String=”aD77aaaaaaaaaaaaaaaa”

trace(str, ” is valid:”, pattern.test(str));aD77aaaaaaaaaaaaaaaa is valid: true

10.|的用法:匹配左边或者右边的字符。

var pattern:RegExp=/小虫|lizhen/

var str:String=”小虫是好人”

trace(str, ” is valid:”, pattern.test(str));小虫是好人 is valid: true

元序列

现在说说元序列 元序列是在as3正则表达式模式中具有特殊含义的字符序列{n} {n,} {n,m} \b \B \d \D \f \n \r \s \S \t \unnnn \v \w \w \W \xnn

1.{n}的用法:匹配恰好n个(n为非负整数)前面的字符。

var pattern:RegExp=/(小虫){2}/ 对象中连续出现2次小虫.注意下(),如果用var pattern:RegExp=/小虫{2}/ 那么就是var str:String=”小虫虫”

var str:String=”小虫小虫”

trace(str, ” is valid:”, pattern.test(str));小虫小虫 is valid: true.

2.{n,}的用法:匹配恰好n个(n为非负整数)或更多个前面的字符。

3.{n,m}的用法:匹配至少n个,至多m个前面的字符。

4.\b的用法:匹配单词字符和非单词字符之间的位置只能放在开头和结尾。NN的,他不支持中文.用中文还是用^.

var pattern:RegExp=/\b小虫/

var pattern:RegExp=/.mp3\b/

var str:String=”小虫.mp3″可以判断是否是mp3格式。

trace(str,” is valid:”, pattern.test(str));小虫.mp3 is valid: true

5.\B的用法:匹配对象必须位于目标字符串的开头和结尾两个边界之内,即匹配对象既不能作为目标字符串的开头,也不能作为目标字符串的结尾和\b相反。

var pattern:RegExp=/\B是/

var str:String=”我是虫子”

trace(str,” is valid:”, pattern.test(str));我是虫子 is valid: true

6.\d的用法:用于匹配从0到9的数字;

var pattern:RegExp=/\b\d/ 开头的第一字符必须为数字

var str:String=”900/元”

trace(str,” is valid:”, pattern.test(str)); 900/元 is valid: true

7.\D的用法:匹配除数字以外的任何字符

var pattern:RegExp=/\b\D/ 开头的第一字符必须不为数字

var str:String=”a900/元”

trace(str,” is valid:”, pattern.test(str)); a900/元 is valid: true

8.\f的用法:匹配换页符DOS操作时代的概念

9.\n的用法:匹配换行符

var pattern:RegExp=/\n/

var str:String=”欢迎来到虫子的空间!\n”

trace(str,” is valid:”, pattern.test(str));

10.\r的用法:匹配回车符

var pattern:RegExp=/\r/

var str:String=”欢迎来到虫子的空间!\r”

trace(str,” is valid:”, pattern.test(str));

11.\s的用法:匹配任何空白字符(空格、制表符、换行符或回车符)

var pattern:RegExp=/\s/

var str:String=”欢迎来到虫子的 空间!”

trace(str,” is valid:”, pattern.test(str)); 欢迎来到虫子的 空间! is valid: true

12.\S的用法:匹配除空白字符以外的任何字符

var pattern:RegExp=/\S/

var str:String=”欢迎来到虫子的空间!”

trace(str,” is valid:”, pattern.test(str)); 欢迎来到虫子的空间! is valid: true

13.\t的用法:匹配制表符DOS操作时代的概念

14.\unnnn用法:匹配字符代码由十六进制数字 nnnn 指定的 Unicode 字符。例如,\u263a 是一个笑脸字符

var pattern:RegExp=/\u263a/

var str:String=”欢迎来到虫子的空间!\u263a”

trace(str,” is valid:”, pattern.test(str)); 欢迎来到虫子的空间!☺ is valid: true

15.\v 用法:匹配垂直换页符DOS操作时代的概念

16.\w用法:匹配单词字符(A-Z、a-z、0-9 或 _)。请注意,\w不匹配非英文字符,如é、ñ 或 ç。他和[]是有区别的。

var pattern:RegExp=/^\w/

var str:String=”a虫子”

var str:String=”0虫子”

var str:String=”A虫子”

var str:String=”_虫子”

trace(str,” is valid:”, pattern.test(str));_虫子 is valid: true

17.\W用法:匹配除单词字符以外的任何字符。

var pattern:RegExp=/^\W/

var str:String=”虫子”

trace(str,” is valid:”, pattern.test(str));虫子 is valid: true

18.\xnn用法:匹配具有指定 ASCII 值(由十六进制数字 nn 定义)的字符。

var pattern:RegExp=/^\x41/;”A”

var str:String=”ABCD”;

trace(str,” is valid:”, pattern.test(str));ABCD is valid: true

标志

标志:标志可以作为as3正则表达式对象属性进行访问。as3正则表达式有五个标志:g i m s x

1.g的用法:如果不指定g,那么在查找的时候只会返回一个。

如:

var str:String = “she sells seashells by the seashore.”;

var pattern:RegExp = /sh\w*/;

trace(str.match(pattern)) 输出:she

指定g后:

var str:String = “she sells seashells by the seashore.”;

var pattern:RegExp = /sh\w*/g;

trace(str.match(pattern)) 输出:she,shells,shore

2.i的用法:默认情况下,as3正则表达式匹配区分大小写。如果设置 i (ignoreCase) 标志,将忽略区分大小写。

var str:String = “She sells seaShells by the seaShore.”;

var pattern:RegExp = /sh\w*/gi;

trace(str.match(pattern)) 输出:She,Shells,Shore

3.m的用法:匹配”行”的开头和结尾.注意这里的行只有 \n 字符表示行的结束,其余的都不行。包括\r。

比如:

var str:String = “She sells seaShells by the seaShore.\n”;

str+=”She’s your mother”

var pattern:RegExp = /^sh\w*/gim;

trace(str.match(pattern)) 输出:She,She

也可以在结尾使用.比如:

var str:String = “She sells seaShells by the seaShore.\n”;

str+=”She’s your mother.\n”

var pattern:RegExp = /\n\$\w*/gim;

trace(“=====”+str.match(pattern)) 输出:=====

4.s的用法:用点来匹配换行符

var str:String = “<p>Test\n”;

str += “Multiline</p>”;

var re:RegExp = /<p>.*?<\/p>/s;

trace(str.match(re));

5.x的用法:在AS3正则表达式中使用 x (extended) 标志时,则会忽略在模式中键入的所有空格。

var str:String = “lizhen”;

var re:RegExp = /li zhen/x

trace(str.match(re));输出:lizhen

我把AS3正则表达式的一些基本语法都写出来了,基本上每个都有例子。看上去不难,而as3正则表达式的难处就在于这些基本元素的组合。有些人觉得看as3正则表达式就像看天书一样,一大堆符号在那里,的确是这样,但是你掌握了他的基础以后,你就能慢慢的看的懂它了,还是老话,多学多用。

(转)AS3正则:元子符,元序列,标志,数量表达符的更多相关文章

  1. 【Python】【元编程】【二】【描述符】

    """ #描述符实例是托管类的类属性:此外,托管类还有自己实例的同名属性 #20.1.1 LineItem类第三版:一个简单的描述符#栗子20-1 dulkfood_v3 ...

  2. 洛谷P3389 高斯消元 / 高斯消元+线性基学习笔记

    高斯消元 其实开始只是想搞下线性基,,,后来发现线性基和高斯消元的关系挺密切就一块儿在这儿写了好了QwQ 先港高斯消元趴? 这个算法并不难理解啊?就会矩阵运算就过去了鸭,,, 算了都专门为此写个题解还 ...

  3. 【BZOJ4166】月宫的符卡序列 Manacher+hash

    [BZOJ4166]月宫的符卡序列 题解:题倒不难,就是有点恶心. 首先学习回文串的时候一定学到了这样一个结论:一个长度为n的串的本质不同的回文子串数量不超过n个. 那么我们就可以试图将所有回文串的价 ...

  4. 正则去掉html标签之间的空格、换行符、tab符,但是保留html标签内部的属性空格

    今天遇到一个比较少见的去空格: 正则去掉html标签之间的空格.换行符.tab符,但是保留html标签内部的属性空格 JS 举例: "<a href='baidu.com' name= ...

  5. 5G套餐资费或为199元至599元,高昂价格会阻碍大众使用热情吗?

    近段时间,运营商各种谜一般的操作让其走上舆论的风口浪尖,成为人们口诛笔伐的对象.比如在前段时间,运营商相继宣布要取消"达量降速版畅享套餐",对用户的权益造成巨大冲击,引发了网络热议 ...

  6. CSS选择符详解之关系选择符篇

    原文:http://www.chinaz.com/web/2012/1017/278553.shtml 相信大家都对CSS选择符都不陌生,选择符包含:元素选择符.关系选择符.属性选择符.伪类选择符.伪 ...

  7. [一]FileDescriptor文件描述符 标准输入输出错误 文件描述符

    文件描述符   当应用程序请求打开或者操作文件时,操作系统为应用程序设置一张文件列表,具体的实现形式此处不深入说明 操作系统会提供给你一个非负整数,作为一个索引号,它的作用就像地址或者说指针或者说偏移 ...

  8. Perl字符集[\d\D]表示任何字符(所有数字和非数字,包括换行符),“.”表示除了换行符以外的所有字符。

    Perl字符集[\d\D]表示任何字符(所有数字和非数字,包括换行符),“.”表示除了换行符以外的所有字符.

  9. linux内核中的文件描述符(二)--socket和文件描述符

    http://blog.csdn.net/ce123_zhouwei/article/details/8459730 Linux内核中的文件描述符(二)--socket和文件描述符 Kernel ve ...

随机推荐

  1. Huawei Honorcup Marathon 2 垫底记

    先放链接: Huawei Honorcup Marathon 2 在 CF 上面看到这个比赛,就去玩了一下. 一开始的做法时先选一个块,然后不断看其它的每一个块拼在哪里的误差最小,然后拼上去.误差函数 ...

  2. 49、Spark Streaming基本工作原理

    一.大数据实时计算介绍 1.概述 Spark Streaming,其实就是一种Spark提供的,对于大数据,进行实时计算的一种框架.它的底层,其实,也是基于我们之前讲解的Spark Core的. 基本 ...

  3. P4936 题解

    \(\text{Update}\)(2019.10.05): 递推公式推法更详细: 通项公式更新详细版: 单位矩阵的推法更加详细. 特别鸣谢 @Smallbasic 苣佬,是他教会了我推递推公式和通项 ...

  4. 第12组 Beta冲刺(2/5)

    Header 队名:To Be Done 组长博客 作业博客 团队项目进行情况 燃尽图(组内共享) 由于这两天在修严重Bug,故项目没有新的进展,燃尽图没有变化 展示Git当日代码/文档签入记录(组内 ...

  5. EasyEarth三维可视化解决方案——智慧园区

    智慧园区 智慧园区围绕“园区行为数据化”和“园区数据可视化”的核心理念,依托EasyEarth三维可视化基础地理信息云平台,综合运用云计算.物联网.自动化控制.现代通讯.图像识别.软硬件集成等技术,借 ...

  6. nginx 平滑重启的实现方法

    一.背景 在服务器开发过程中,难免需要重启服务加载新的代码或配置,如果能够保证server重启的过程中服务不间断,那重启对于业务的影响可以降为0.最近调研了一下nginx平滑重启,觉得很有意思,记录下 ...

  7. iis启动 服务无法在此时接受控制信息。 (异常来自 HRESULT:0x80070425)

    问题描述:每隔一段时间应用程序池就会自动停止. 再次启动就报错:服务无法在此时接受控制信息. (异常来自 HRESULT:0x80070425) 处理办法:同时按下Win+R,运行“services. ...

  8. 微信小程序之如何定义页面标题

    效果图: 这个标题是在哪里定义的呢?type.js核心代码如下(通常这段代码放在onLoad函数体内): wx.setNavigationBarTitle({ title: "支出类型列表& ...

  9. 如何SpringBoot项目改为外置Tomcat启动

    正常情况下,我们开发 SpringBoot 项目,由于内置了Tomcat,所以项目可以直接启动,部署到服务器的时候,直接打成 jar 包,就可以运行了 (使用内置 Tomcat 的话,可以在 appl ...

  10. Python10个图像处理工具

    原文地址:https://cloud.tencent.com/developer/article/1498116 译者 | 小韩 来源 | towardsdatascience [磐创AI导读]:本篇 ...