as3中正则表达式符号说明与使用
元字符:^ $ \ . * + ? ( ) [ ] { } |
^匹配字符串的开头
$匹配字符串的结尾
\转义字符,用于元字符
*0或多个前面的字符
+至少一个前面的字符
?0或1个前面的字符
.任意单个字符exceptnewline
[]某个范围的单个字符
()集合
|或运算,匹配左或右
元序列:
{n}恰好匹配n个前面的
{n,}匹配至少n个前面的
{n,m}匹配至少n个,至多m个前面的
\b匹配只能放在前面或结尾
\B与\b相反
\d数字
\D数字以外的
\w单词字符(A-Z、a-z、0-9或_)
\W除单词字符以外的任何字符
\unnnn字符代码由十六进制数字nnnn指定的Unicode字符(\u263a☺)
\xnn具有指定ASCII值(由十六进制数字nn定义)的字符。
\s任意空白字符(空格、制表符、换行符或回车符)
\S除空白字符以外的任何字符
\n换行符
\r回车符
DOS中专用的
\v垂直换页符DOS
\t制表符DOS
\f换页符DOS
标志:
g如果不指定g,那么在查找的时候只会返回一个。
I默认情况下,匹配区分大小写。如果设置i(ignoreCase)标志,将忽略区分大小写
m匹配”行”的开头和结尾.注意这里的行只有\n字符表示行的结束,其余不行,包括\r
s用点来匹配换行符
x在正则表达式中使用x(extended)标志时,则会忽略在模式中键入的所有空格
附加:
[abc]charactera,borc
[^abc]Anycharacterexcepta,borc
[a-z]athroughz
[]中‘空格’和\s都可以表示空格符
但[]外只能用\s表示空格符
AS3中声明正则表达式的两种方式
varreg:RegExp=newRegExp(“test-\\d”,“g”);
varreg:RegExp=/test-\d/g;
使用
varstr:String=‘<span>teststring</span>’;
str.replace(reg,’-');
str.match(reg);
量词类型
贪婪量词:
先看整个字符串是不是一个匹配。如果没有发现匹配,它去掉最后字符串中的最后一个字符,并再次尝试。如果还是没有发现匹配,那么再次去掉最后一个字符串,这个过程会一直重复直到发现一个匹配或者字符串不剩任何字符。简单量词都是贪婪量词。
惰性量词:
先看字符串中的第一个字母是不是一个匹配,如果单独着一个字符还不够,就读入下一个字符,组成两个字符的字符串。如果还没有发现匹配,惰性量词继续从字符串中添加字符直到发现一个匹配或者整个字符串都检查过也没有匹配。惰性量词和贪婪量词的工作方式恰好相反。
支配量词:
只尝试匹配整个字符串。如果整个字符串不能产生匹配,不做进一步尝试。
贪婪量词惰性量词支配量词描述
————————————————————————————-
????+可以出现0次或1次,但至多出现1次
**?*+可以出现任意次,也可以不出现
++?++出现1次或多次,但至少出现1次
{n}{n}?{n}+一定出现n次
{n,m}{n,m}?{n,m}+至少出现n次,但至多不能超过m次
{n,}{n,}?{n,}+可以出现任意次,但至少出现n次
例子:
<bord>test</bord>
使用/<.*?>/g结果:-test-
使用/<.*>/g结果:-
From-http://blog.ityao.com/archives/590