本文實例講述了正則表達式中的正向預查和負向預查。分享給大家供大家參考。具體分析如下:
這里先來看一個例子,再來解釋什么是正向預查。
例子:有一段內容為"coming soon,going gogogo",要求把com和go查找出來。代碼如下:
復制代碼代碼如下:
<html>
<head>
<script type="text/javascript">
//正向預查
function t1(){
var con = document.getElementsByName('content')[0].value;
var reg = //b[/w]+(?=ing/b)/g;//匹配帶ing的單詞,但是不要ing。注意:如果ing后不加/b,類似于goingabc也會匹配。
alert(con.match(reg));
}
</script>
</head>
<body>
<textarea rows="5" cols="30" name="content"></textarea><br />
<button onclick="t1();">正則預查</button><br />
</body>
</html>
以上面的實例來講解正向預查:先查出邊界,再找到與[/w]+匹配的字,(?=ing)表示先向后探測,看看有沒有ing。如果有,則把前面的匹配出來;如果沒有,則光標往后移一位,繼續探測。這個過程就是正向預查:預先判斷為某個值 。
所謂負向預查,就是預先判斷不為某個值。文本框輸入內容為"win7,winxp,win95,win98,win2003"
復制代碼代碼如下:
<html>
<head>
<script type="text/javascript">
//正向預查
function t1(){
var con = document.getElementsByName('content')[0].value;
var reg = //bwin(?!95/b)/g;//
alert(con.match(reg));
}
</script>
</head>
<body>
<textarea rows="5" cols="30" name="content"></textarea><br />
<button onclick="t1();">正則預查</button><br />
</body>
</html>
上面兩個例子是從前往后正向/負向預查----相關信息百度搜索"零寬斷言"。JS不支持向前正向/負向預查,而PHP支持。
希望本文所述對大家的正則表達式學習有所幫助。