(转)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. Linux 系统管理——文件系统与LVM、磁盘配额实例

    1.为主机增加80G SCSI 接口硬盘 2.划分三个各20G的主分区 3.将三个主分区转换为物理卷(pvcreate),扫描系统中的物理卷 4.使用两个物理卷创建卷组,名字为myvg,查看卷组大小 ...

  2. Gift to XBACK(小小礼物)

    什么白天 什么黑夜 我没有 准备着给你的 Surprise 你给我的爱 让我觉得已足够 是你让我相信爱会有 是你的爱陪我绕宇宙 打开日记本写下忧愁 你却让我看时间轴 我才知道现在我能看到的画面 拥有你 ...

  3. 55、Spark Streaming:updateStateByKey以及基于缓存的实时wordcount程序

    一.updateStateByKey 1.概述 SparkStreaming 7*24 小时不间断的运行,有时需要管理一些状态,比如wordCount,每个batch的数据不是独立的而是需要累加的,这 ...

  4. Linux 把进程为D(不可中断进程)转换成其他状态

    问题现象:当前集群跑hadoop的时候,,任务失败,但是跑任务的容器没有正常退出,显示一大堆的YarcChild进程,,more /proc/进程/status   查看其状态,进程为D(disk s ...

  5. [后渗透]Metasploit使用基础

    0x00 简介 Metasploit是一个免费的.可下载的框架,通过它可以很容易地获取.开发并对计算机软件漏洞实施攻击.它本身附带数百个已知软件漏洞的专业级漏洞攻击工具.当H.D. Moore在200 ...

  6. Net core学习系列(三)——Net Core中的依赖注入

    本文通过一个维修工与工具库的例子形象的描述一下为什么要用依赖注入.它的工作原理是什么样的, 然后根据这个类比一下ASP.NET Core 中的依赖注入, 从而深刻了解它的使用方法.注意事项以及回收机制 ...

  7. flask 开发接口测试平台

    flask 开发接口测试平台 数据库,forms  views  视图, 数据库如下: # encoding: utf-8 ''' @author: lileilei @file: models.py ...

  8. Amazon | OA 2019 | Optimal Utilization

    Given 2 lists a and b. Each element is a pair of integers where the first integer represents the uni ...

  9. Chrome DevTools 之 Network,网络加载分析利器

    链接:https://www.jianshu.com/p/471950517b07 虽然一直在用Chrome DevTools,但大多停留在常用的功能和调试上,比如Elements/Network/S ...

  10. [python语法]python中如何判断一个集合是另一个集合的子集?

    问:python中如何判断一个集合是另一个集合的子集? 答:用issubset()方法 语法: A.issubset(B) 返回: True 如果A是B的子集. False 如果A不是B的子集. 样例 ...