AS3.0 正则表达式规则

谈谈正则表达式,AS3.0中引进了正则表达式。正则表达式是用于验证文本值是否符合特定模式。
正则表达式有四个部分。1元子符。2元序列。3标志。4数量表达符。
可以这样看 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
现在说说元序列 元序列是在正则表达式模式中具有特殊含义的字符序列{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


标志:标志可以作为正则表达式对象属性进行访问。正则表达式有五个标志: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 的用法:默认情况下,正则表达式匹配区分大小写。如果设置 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 的用法:在正则表达式中使用 x (extended) 标志时,则会忽略在模式中键入的所有空格。
var str:String = "lizhen";
var re:RegExp = /li zhen/x
trace(str.match(re));输出:lizhen

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python正则表达式是一种强大的字符串处理工具,用于匹配、搜索和替换字符串中的字符模式。它可以通过提供一组规则来定义要匹配的模式。 Python正则表达式规则基于一些特殊字符和操作符,用于描述和定义不同类型的模式,其中一些重要的规则包括: 1. 普通字符:普通的字符在正则表达式中直接匹配对应的字符,例如正则表达式中的字符"a"可以匹配任何字符串中的字符"a"。 2. 特殊字符:正则表达式中有一些特殊字符具有特定的含义,例如"\d"表示匹配任何一个数字字符,"\w"表示匹配任何一个字母数字字符。 3. 字符类:字符类用于匹配一组字符,可以使用"[]"来定义字符类,例如"[aeiou]"表示匹配任何一个元音字母。 4. 量词:量词用于指定匹配模式的数量,例如"*"表示匹配前一个元素零次或多次,"+"表示匹配前一个元素一次或多次,"?"表示匹配前一个元素零次或一次。 5. 边界:边界用于指定匹配模式的位置,例如"^"表示匹配字符串的开头位置,"$"表示匹配字符串的结尾位置。 6. 分组:分组用于将多个表达式组合在一起,并对其进行匹配,可以使用"()"来定义分组,例如"(a|b)"表示匹配字符"a"或字符"b"。 以上是Python正则表达式的一些基本规则,可以根据具体需求灵活使用,通过编写正确的正则表达式,可以有效地实现字符串的模式匹配、搜索和替换操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值