欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

javascript 反向預查

洪振霞1年前8瀏覽0評論

你是否曾經遇到這樣的場景:你需要匹配一個字符串中不以某個詞結尾的所有出現次數,但卻不能匹配其結尾的那個詞。這時,反向預查就可以派上用場了!

反向預查(negative lookbehind)是一種在匹配字符串時,可以先確定一個位置之前有什么內容的正則表達式。在JavaScript正則表達式中,反向預查使用問號、小括號和等號來定義。

下面,我們來看一個例子。假設我們有一個字符串,其中包含了以星號開頭的多個單詞。我們需要匹配所有不是以“hello”結尾的單詞,但不能匹配“hello”本身。

let str = "*howdy hello world hello*";
let regExp = /(?

在這個正則表達式中,我們使用了“反向預查”(?:

  • (?<!pattern)- 表示零寬度負預測先行斷言,匹配前面不是 pattern 的位置。
  • \b- 表示單詞邊界。
  • \w+- 表示匹配單詞,此處表示匹配單詞的一部分。
  • g- 表示全局匹配。

這時,我們就可以獲得所有不是以“hello”結尾的單詞,但不能匹配“hello”本身。

下面,我們再來看一個例子,在這個例子中,我們需要查找一個字符串中的連續數字,并且這些數字不能以0開頭。我們可以使用反向預查來實現:

let str = "123,456,789,0001";
let regExp = /(?

在這個正則表達式中,我們使用了“反向預查”(?:<!0)和(?!\d),表示捕獲所有不以0開頭的數字。具體解釋如下:

  • (?<!pattern)- 表示零寬度負預測先行斷言,匹配前面不是 pattern 的位置。
  • \d+- 表示匹配數字。
  • (?![0-9])- 表示零寬度負預測后發斷言,匹配后面不是數字的位置。
  • g- 表示全局匹配。

在我們的表達式中,首先要求當前位置前面不能是數字0。其次需匹配一個或多個數字,再次,當前位置后面需要是非數字符號。

反向預查是一種非常強大的正則表達式功能,因為它可以使我們在匹配字符串時,考慮到前面或后面的內容是否存在。它給我們提供了更多的靈活性和更多的選擇,可以讓我們在需要的時候做出更準確的匹配。

下一篇php gmp