亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > regex > 正文

正則表達式斷言、巡視(Assertions)、正向斷言、反向斷言介紹

2020-01-20 22:08:55
字體:
來源:轉載
供稿:網友

斷言(Assertions)在正則表達式概念里面難理解,它通常指的是在目標字符串的當前匹配位置進行的一種測試但這種測試并不占用目標字符串,也即不會移動模式在目標字符串中的當前匹配位置。詳細可以看看,正則表達式匹配解析過程探討分析(正則表達式匹配原理),里面提到“零寬度“很多元字符,只是對特殊位置進行匹配,它們可以理解為斷言。

斷言元字符

常見斷言元字符有: /b, /B, /A, /Z, /z, ^ ,$ 它們只是表示特殊位置,各自作用如有字符串AB,帶位置表示為:0A1B2

元字符 意義(以上面帶位置字符串說明)
^ 行首,字符串首 表示位置0
$ 行尾,字符串尾部,表示位置2
/b 字分界線,可以表示:0,2位置
/B 非字分界線,可以表示1位置
/A 目標的開頭(獨立于多行模式) 表示位置0
/Z 目標的結尾或位于結尾的換行符前(獨立于多行模式) 表示位置2
/z 目標的結尾(獨立于多行模式)表示位置2
/G 目標中的第一個匹配位置
A,Z,z,G很少使用

這些斷言的測試都是一些基于當前位置的測試,斷言還支持更多復雜的測試條件。更復雜的斷言以子模式方式來表示,它包括先行(前向)斷言(Lookahead assertions)和后行(后向)斷言(Lookbehind assertions),這些斷言判斷只做匹配判斷條件,不會記錄在匹配結果中,不會匹配字符。

先行斷言、正向斷言、正向巡視(Lookahead assertions)

先行斷言,常有表示(?=pattern),從當前匹配位置開始測試后面匹配字符串是否成立,還有(?!pattern)這樣兩種格式,我們來看看一個例子。源字符串:“abc100”,正則表達式是:
/[a-z]+(?=/d+)/ ,我們分析下過程如下圖:

首先由正則表達式字符 [a-z]+ 取得控制權,匹配字符:”abc”,位置從”0”開始匹配,變成3。從該位置測試/d+是否成立。匹配到字符100,返回成立。因此正則表達式正向斷言成功。返回匹配字符串”abc”

(?!pattern) 只是,正向匹配,當后面沒有匹配成功,將返回真。以下是系統源字符串:abc100,測試結果如下:

后行斷言、反向斷言、反向巡視(Lookbehind assertions)

后行斷言,常見表達式是:(?<=pattern)或者(?<!pattern)格式。正則表達式里面,不要出現不固定長度量詞,可能會出現死循環。匹配出錯。表示當前位置左邊將出現匹配字符,則返回真,后面匹配正常。因為如果它出現在最左邊,默認位置從0開始,匹配都是失敗的。一般都從后面正則表達式開始匹配,再回溯,直到匹配到為止。我們看看下面例子:源字符串:“abc100+=“,正則表達式是:”(?<=/w)/w+”,匹配過程如下圖:

首先由正則表達式字符 //w+/取得控制權,匹配字符:”abc100”,位置從”0”開始匹配,匹配到6個字符。從該位置0檢測左變/w匹配失敗。因此//w+/從字符b開始匹配到”bc100”,測試它左側有字符”a”,反向斷言正確。因此匹配到字符串“bc100”,(?<!pattern),只是沒有匹配成功返回真,其它都一樣!

后記:從這篇文章,我們發現搜索特點都是從左到有,一般正向斷言放到,正則表達式后,反向斷言放到匹配正則表達式前。但是,這里也可以放到前或后。這里就不再舉例。歡迎交流討論!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产亚洲欧美aaaa| 亚洲自拍偷拍色图| 日韩电影中文字幕在线| 欧美激情国产高清| 欧美一级免费视频| 亚洲国产美女精品久久久久∴| 91影视免费在线观看| 亚洲精品一区二区在线| 亚洲国产91精品在线观看| 久久久久久久成人| 欧美成人手机在线| 久久99国产综合精品女同| 亚洲天堂视频在线观看| 久久av红桃一区二区小说| 亚洲天堂男人的天堂| 91精品国产成人www| 亚洲精品久久久久| 欧美风情在线观看| 色先锋资源久久综合5566| 久久久国产一区二区| 91高清视频在线免费观看| 亚洲iv一区二区三区| 欧美自拍大量在线观看| 永久555www成人免费| 日韩福利伦理影院免费| 欧美日韩国产区| 国产女精品视频网站免费| 日韩欧美在线字幕| 青青草原一区二区| 国内精品小视频在线观看| 日产精品久久久一区二区福利| 精品久久香蕉国产线看观看gif| 欧美日韩亚洲精品一区二区三区| 久久噜噜噜精品国产亚洲综合| 国产女同一区二区| 2019中文字幕在线观看| 69**夜色精品国产69乱| 欧美黑人xxxx| 亚洲国产精品成人va在线观看| 国产女同一区二区| 国产精品久久久久久久app| 欧美日本中文字幕| 久久久久久久久久久网站| 精品久久久久久中文字幕大豆网| 亚洲永久免费观看| 久久久久久免费精品| 欧美国产日韩免费| 中国日韩欧美久久久久久久久| 久久精品国产精品| 亚洲天堂成人在线视频| 精品视频中文字幕| 久久久成人的性感天堂| 久久99国产综合精品女同| 亚洲欧洲高清在线| 色婷婷综合成人av| 亚洲精品日韩激情在线电影| 色av吧综合网| 在线免费观看羞羞视频一区二区| 日本高清视频精品| 欧美激情视频网| 国产精品专区第二| 26uuu亚洲伊人春色| 欧美综合一区第一页| 国产精品69久久久久| 日本精品性网站在线观看| 日韩女优人人人人射在线视频| 久久精品99无色码中文字幕| 欧美黄色性视频| 亚洲美女在线观看| 麻豆国产精品va在线观看不卡| 91亚洲精品一区| 日韩精品在线免费| 激情亚洲一区二区三区四区| 亚洲自拍小视频免费观看| 国产精品黄页免费高清在线观看| 国产精品精品久久久久久| 国产精品国产三级国产专播精品人| 日日摸夜夜添一区| 日韩欧美国产骚| 亚洲视频在线免费观看| 精品无人区乱码1区2区3区在线| 久久在精品线影院精品国产| 欧美第一黄网免费网站| 亚洲国产精品电影| 97在线日本国产| 日韩一二三在线视频播| 亚洲天堂成人在线| 韩日精品中文字幕| 国模叶桐国产精品一区| 久久精品国产精品亚洲| 欧美电影《睫毛膏》| 中文字幕久久久| 亚洲免费av片| 欧美日韩国产激情| 人人做人人澡人人爽欧美| 一区二区三区四区精品| 久久黄色av网站| 欧美一级视频免费在线观看| 国产中文欧美精品| 国产精品久久久久久久久久新婚| 亚洲www在线观看| 久久久久久久一| 欧美性猛交xxxxx免费看| 中文字幕日韩免费视频| 91国语精品自产拍在线观看性色| 国产综合久久久久久| 国产欧美精品va在线观看| 久久久精品一区二区| 91热精品视频| 精品久久久久久久久久ntr影视| 日韩黄色av网站| 欧美日韩福利电影| 91社区国产高清| 久久全球大尺度高清视频| 欧美黑人狂野猛交老妇| 亚洲精品日韩激情在线电影| 91av成人在线| 亚洲深夜福利网站| 久久成人18免费网站| 欧美网站在线观看| 中文字幕亚洲一区| 色爱精品视频一区| 国产日产欧美a一级在线| 国产精品伦子伦免费视频| 最近2019中文字幕mv免费看| 久久久久久国产| 亚洲最大中文字幕| 自拍偷拍亚洲在线| 国产成人精品在线播放| www.久久色.com| 国产乱肥老妇国产一区二| 中文字幕在线看视频国产欧美| 色综合色综合网色综合| 欧美激情第99页| 久久久久久久色| 欧洲成人免费aa| 欧美成人在线影院| 亚洲九九九在线观看| 亚洲毛片在线免费观看| 精品久久中文字幕| 日韩在线精品一区| 久久天天躁狠狠躁夜夜躁| 成人免费看吃奶视频网站| 日本久久中文字幕| 91亚洲国产精品| 久久久精品久久久| 97久久精品人人澡人人爽缅北| 性欧美视频videos6一9| 亚洲精品在线看| 91精品国产99| 亚洲自拍小视频| 亚洲最新中文字幕| 黑人极品videos精品欧美裸| 亚洲专区在线视频| 国产男女猛烈无遮挡91| 国产精品高清免费在线观看| 国产精品96久久久久久| 国产精品91久久久| 日韩av影视综合网| 亚洲精品一二区| 国产精品丝袜久久久久久不卡| 精品久久久精品| 日韩中文字在线| 亚洲国产又黄又爽女人高潮的|