正则表达式 负向前瞻
2016-10-24 16:44
232 查看
负向前瞻语法为(?!pattern),在被搜索字符串的相应位置不能有pattern部分表示的内容,也不将其作为匹配结果进行处理,当然也不会存储在缓冲区。
例如正则表达式 /bed(?!room)/只能匹配后面不跟字串"room"的字串"bed",如字串"bedrock"等,且子串"room"并不作为匹配的结果返回。
实例:
<script type="text/javascript">
<!--
var str = "bedroom bedclass";
var reg = /bed(?!room)/g;
var arr = reg.exec(str);
var msg;
if(arr){
msg
= arr+"成功匹配<br>";
}else{
msg
= "匹配失败<br>";
}
document.write(msg);
arr = reg.exec(str);
if(arr){
msg
= arr+"成功匹配<br>";
}else{
msg
= "匹配失败<br>";
}
document.write(msg);
-->
</script>
输出:
bed成功匹配
匹配失败
--------------------------------------------------------------------------------------------------------------
同样,正则表达式/Windows(?!2000|xp)/匹配除"Windows2000"和"Windowsxp"之外的子串"Windows",如子串"WindowsNT"等,且子串"2000"和"xp"不作为匹配的结果返回。
实例:
<script type="text/javascript">
<!--
var str = "Windows2000 Windowsxp WindowsNT";
var reg = /Windows(?!2000|xp)/g;
var arr = reg.exec(str);
var msg;
if(arr){
msg
= arr+"成功匹配<br>";
}else{
msg
= "匹配失败<br>";
}
document.write(msg);
arr = reg.exec(str);
if(arr){
msg
= arr+"成功匹配<br>";
}else{
msg
= "匹配失败<br>";
}
document.write(msg);
-->
</script>
输出:
Windows成功匹配
匹配失败
例如正则表达式 /bed(?!room)/只能匹配后面不跟字串"room"的字串"bed",如字串"bedrock"等,且子串"room"并不作为匹配的结果返回。
实例:
<script type="text/javascript">
<!--
var str = "bedroom bedclass";
var reg = /bed(?!room)/g;
var arr = reg.exec(str);
var msg;
if(arr){
msg
= arr+"成功匹配<br>";
}else{
msg
= "匹配失败<br>";
}
document.write(msg);
arr = reg.exec(str);
if(arr){
msg
= arr+"成功匹配<br>";
}else{
msg
= "匹配失败<br>";
}
document.write(msg);
-->
</script>
输出:
bed成功匹配
匹配失败
--------------------------------------------------------------------------------------------------------------
同样,正则表达式/Windows(?!2000|xp)/匹配除"Windows2000"和"Windowsxp"之外的子串"Windows",如子串"WindowsNT"等,且子串"2000"和"xp"不作为匹配的结果返回。
实例:
<script type="text/javascript">
<!--
var str = "Windows2000 Windowsxp WindowsNT";
var reg = /Windows(?!2000|xp)/g;
var arr = reg.exec(str);
var msg;
if(arr){
msg
= arr+"成功匹配<br>";
}else{
msg
= "匹配失败<br>";
}
document.write(msg);
arr = reg.exec(str);
if(arr){
msg
= arr+"成功匹配<br>";
}else{
msg
= "匹配失败<br>";
}
document.write(msg);
-->
</script>
输出:
Windows成功匹配
匹配失败