网站制作学习网JS脚本→正文:正则表达之复杂模式2
字体:

正则表达之复杂模式2

JS脚本 2010/4/2 16:19:52  点击:不统计


继续前一篇的正则表达之复杂模式
4.非捕获性分组
上次说道反向引用分组,我们称其为捕获性分组.还有一种是非捕获性分组,就是不存储分组结果,这样运算起来很快.非捕获性分组在左(前面一个)括号的后面加上?:即可.
举例说明
第一个是捕获性分组
var foraspcn_str = "#abcd";
var re = /#(\w{2})/g;
re.test(foraspcn_str);
alert(RegExp.$1);返回ab
比较非捕获性分组
var foraspcn_str = "#abcd";
var re = /#(?:\w{2})/g;
re.test(foraspcn_str);
alert(RegExp.$1);则返回空.
5前瞻,分为正向前瞻和负向前瞻
前瞻,当某个特定的字符分组出现在另一个字符串之前,才去捕获它.
正向其中南站模式是放在(?=和)之间,正像前瞻检查的是接下来出现的是不是某个特定的字符集.
举例:
var str1 = "badroom";
var str2 = "badding";
var re = /(bad(?=room))/g;
alert(re.test(str1));//输出ture
alert(RegExp.$1);//输出bad
alert(re.test(str2));//输出false
负向前瞻是检查不应该出现的特定字符串,是将模式放在(?!和)之间.
var str1 = "badroom";
var str2 = "badding";
var re = /(bad(?=room))/g;
alert(re.test(str1));//输出false
alert(re.test(str2));//输出ture
alert(RegExp.$1);//输出bad
6边界用于正则表达式中标识模式的位置
边界表
边界 描述
^    行开头
$    行结尾
\b   单词的边界
\B   非单词的边界
举例:
var str = "this site is www.forasp.cn.";
var re1 = /(\w+)\.$/;
var re2 = /^(\w+)/;
var re3 = /^(.+?)\b/;
var re4 = /\b(\S+?)\b/;
re1.test(str);
alert(RegExp.$1);//输出cn
re2.test(str);
alert(RegExp.$1);//输出this
var array1 = re3.match(str);
var array2 = re4.match(str);
7.多行模式,急当字符串中有换行符\n,只要在表达式后面加上一个m选项.
第六个和第七个不是很了解......

·上一篇:正则表达之复杂模式1 >>    ·下一篇:RegExp对象的实例属性 >>
推荐文章
最新文章