var re = /[a]+([^a]*?)[b]+/gi;
var s = "1234a桌子bbb456";
alert(re.test(s));
alert(s.match(re));
alert(RegExp.$1); // 桌子JScript语言参考
http://download.csdn.net/source/308916
var s = "1234a桌子bbb456";
alert(re.test(s));
alert(s.match(re));
alert(RegExp.$1); // 桌子JScript语言参考
http://download.csdn.net/source/308916
\S* 匹配了 a桌子
(?=b) 匹配了 b前面的位子
1 正向预查 (?=pattern)
在任何匹配 pattern 的字符串开始处匹配查找字符串。
例如:
str = "Windows95 Windows98 WindowsNT Windows2000";
newstr = str.replace(/Windows(?=95|98)/g,"win");
document.write(newstr)
匹配"Windows95 Windows98"中的"Windows"但不能匹配"WindowsNT Windows2000"中的"Windows"
结果:win95 win98 WindowsNT Windows20002 负向预查 (?!pattern)
在任何不匹配 pattern 的字符串开始处匹配查找字符串。
例如:
str = "Windows95 Windows98 WindowsNT Windows2000";
newstr = str.replace(/Windows(?!95|98)/g,"win");
document.write(newstr)
匹配"WindowsNT Windows2000"中的"Windows"但不能匹配"Windows95 Windows98"中的"Windows"
结果:Windows95 Windows98 winNT win2000注意:预查所匹配的字符串不包括匹配pattern的字符串,即括号内的字符串,而且只能前瞻不能后瞻(待研究)字符 含义
____________________________________________________________________
| 或者
(pattern) 分组,子模式
(?:pattern) 分组,非捕获元字符
(?=pattern) 正向预查,非捕获元字符
(?!pattern) 负向预查,非捕获元字符
\n 和第n个分组所匹配的字符相匹配
____________________________________________________________________
var s = "1234aaaa板凳ba桌子bbb123a椅子bbb456";var re = /[a]+([^a]*?)[b]+/gi;if (re.test(s))
{
var a = s.match(re);
for (var i=0; i<a.length; i++)
{
a[i].match(re);
alert(a[i] + "\n\n" + RegExp.$1);
}
}