国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Regex > 正文

正則表達式中的正向預查和負向預查

2020-03-16 20:20:42
字體:
來源:轉載
供稿:網友

日常工作當中,大多數IDE自帶的查找工作都能滿足大多數需要。

加上正則匹配簡直如虎添翼。匹配個郵箱,電話號什么的不在話下。有時候我們可能會遇到稍微特殊的場景。

Windows 1.03 and Windows 2.0 fisrt Released in 1985 and 1987 respectively.
Windows 95 and Windows 98 are the successor.
Then Windows 2000 and Windows Xp Windows appeared.
Windows Vista is the Latest version of the family.

例如上面這一段話,有幾個場景

1、我們想匹配 Windows 后面是數字版本號的Windows 和這些字符。如 Windows 1.03 等等。

等 用?: 即 Windwos (?:[/d.]+/b)如下圖,這是直接匹配結果 , 匹配出了Windows 1.03,Windows 2.0, Windows 95,Windows 98,Windows 2000,但是沒有匹配到Windows Xp, Windows Vista,等

正則表達式,正向預查,負向預查

2、我們只想匹配滿足這些條件的'Window' ,但不包括后面的字符

用 (?= pattern) 即 Windows (?=[/d.]+/b) 他把Windows的空格也匹配了。這一過程就是正向匹配。

正則表達式,正向預查,負向預查

3、如果我想匹配這些Windows 字段,它后面跟的不是數字或者版本號,我改用

(?!pattern)即 Windows (?![/d.]+/b) 這一過程叫做正向匹配不滿足(我覺得這樣叫跟容易理解), 它匹配后面不跟著滿足pattern( [/d.]+/b) 的Windows。

正則表達式,正向預查,負向預查

4、我想匹配Windows前面是數字的Windows.我們用 (?<=[/d].) Windows 這叫逆向匹配(<左箭頭就說明了是從右往左,好記吧),他們匹配Windows前面是一個或者多個數字的'Windows'.

如圖這里只匹配到了 和11挨著的 Windows。

正則表達式,正向預查,負向預查

 

5、我想匹配Windows前面不是數字的Windows。我想匹配 Windows 前面不是數字的Windows ,通常叫做逆向不匹配。我把它叫做逆向匹配不滿足pattern。

用(?<! pattern)keyword.

正則表達式,正向預查,負向預查

它匹配到了 在11之后的 Windows之外的所有Windows(不包括行首的Windows)。

關于零寬斷言,我認為這個說法讓人覺得很學術,不易理解。我的理解是,把零寬理解為關鍵字前面或者后面的正則表達式匹配出來的字符不會被顯示出來,也不被用來當做常規的子查詢。 它只起到判斷作用。

總結

以上所述是小編給大家介紹的正則表達式中的正向預查和負向預查,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VEVB武林網網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!


注:相關教程知識閱讀請移步到正則表達式頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 三门县| 卢龙县| 恩平市| 普安县| 泗阳县| 会理县| 武平县| 丁青县| 灵寿县| 宣城市| 霍城县| 木兰县| 凤凰县| 玉山县| 铁力市| 南宫市| 邢台县| 许昌县| 平谷区| 罗甸县| 房山区| 忻州市| 盱眙县| 楚雄市| 商丘市| 清新县| 易门县| 山丹县| 南投市| 伊吾县| 广河县| 隆尧县| 桂东县| 长垣县| 孝义市| 双鸭山市| 临沭县| 泸水县| 县级市| 民权县| 福鼎市|