五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

PHP正則表達(dá)式核心技術(shù)完全詳解 第12節(jié) [附加知識] 斷言匹配

2020-11-15 18:21 作者:極客小俊GeekerJun  | 我要投稿

? 極客小俊

?一個專注于web技術(shù)的80后

你不用拼過聰明人,你只需要拼過那些懶人 你就一定會超越大部分人!

在這里插入圖片描述

PHP正則中的斷言匹配

我遇見過很多初學(xué)者都不知道什么叫 斷言匹配 ,今天就跟小白解釋一下?

概述 斷言匹配也叫定位邊界匹配、 含義就是要取從某一個字符串的位置開始 或 結(jié)尾開始截取 語法: ?<=n : 表示匹配當(dāng)前從n字符串之后 或者 之前的字符串?

小提示: 這里主要是要搞清楚會不會包含n字符串, 如果還不理解那么我們就看下面的案例吧

例1: 匹配n字符串之后的所有字符: 這里就叫 匹配之后 ?注意:[這里不會包含當(dāng)前n的字符] ?案例代碼如下:

?//斷言匹配 案例1 ?匹配n字符串之后的所有字符串, 但這里不會包含n這個字符
?$string='33333333aaaaaabbbbbbaidu.com.cn 北京市朝陽區(qū)';
?$pattern='/(?<=baidu).*/';
?preg_match($pattern,$string,$arr);
?show($arr);

例2: 匹配n字符串之前的所有字符, 這里就叫: 之前匹配 ?注意:[這里會包含當(dāng)前n字符]案例代碼如下:

?//斷言匹配 案例2 ?匹配n字符串之前的所有字符串, 但這里會包含n這個字符
?$string='33333333aaaaaabbbbbbaidu.com.cn 北京市朝陽區(qū)';
?$pattern='/.*(?<=baidu)/';
?preg_match($pattern,$string,$arr);
?show($arr);

?我想大家看了案例以后應(yīng)該清楚什么叫之前 之后 的匹配了吧!! ?如果不清楚就把代碼粘貼,運(yùn)行起來,跑一下,打印出結(jié)果就會知道含義了!

在w3school api文檔的JS分類里RegExp篇章中量詞里面 大家會找到一個叫: ?=n 的東西 , 這個也是斷言匹配的一種形式, ??=n 表示匹配包含當(dāng)前從n字符串之后 或者 之前的字符串

例3: 之后的匹配 ?注意:[這里會包含當(dāng)前n的字符, 這里跟例1恰好相反 ] ?其實 仔細(xì)觀察的同學(xué)一定會發(fā)現(xiàn) 核心區(qū)別就是少一個小于符號 : < ?就會造成不同的效果

? //斷言匹配 案例3 ?匹配n字符串之后的所有字符串, 這里會包含n這個字符
?$string='33333333aaaaaabbbbbbaidu.com.cn 北京市朝陽區(qū)';
?$pattern='/(?=baidu).*/';
?preg_match($pattern,$string,$arr);
?show($arr);

例4: 之前的匹配 ?注意:[這里不會包含當(dāng)前n的字符 , 這里也恰好跟例2 相反 ] 就不多說了直接看代碼吧!

?//斷言匹配 案例4 ?匹配n字符串之前的所有字符串, 這里不包含n這個字符
?$string='33333333aaaaaabbbbbbaidu.com.cn 北京市朝陽區(qū)';
?$pattern='/.*(?=baidu)/is';
?preg_match($pattern,$string,$arr);
?show($arr);

現(xiàn)在明白我一開始就說: 要是要搞清楚會不會包含n字符串 的原因了吧!!

那么現(xiàn)在搞清楚了什么是斷言匹配之后, 我們繼續(xù)來看幾個綜合小例子吧 斷言匹配綜合小應(yīng)用 例1 : 抽取字符串的其中某一段字符! 代碼如下:

?$string='33333333666www.baidu.com.cn 北京市朝陽區(qū)';
?$pattern='/(?<=666).*(?=\.cn)/is';
?preg_match($pattern,$string,$arr);
?show($arr);

斷言匹配綜合小應(yīng)用 例2: 抽取@中間的字符 代碼如下:

?$string='@php@python.com@perl.com@';
?$pattern='/(?<=@).*?(?=@)/is';
?preg_match_all($pattern,$string,$arr);
?show($arr);

斷言匹配綜合小應(yīng)用 例3: 抽取@中間的字符 升級版 代碼如下:

?$string='@php@python.com@perl.com@asdasdas#java#spring boot#';
?$pattern='/(?<=[@#]).*?(?=[@#])/is';
?preg_match_all($pattern,$string,$arr);
?show($arr);

以上的案例差不多 就是我在工作當(dāng)中 遇見過的.

斷言匹配 暫時就說到這里,以后會繼續(xù)更新!!





如果喜歡話請 點(diǎn)贊 ?評論 ?收藏 一鍵三連 ?

大家的支持就是我堅持下去的動力!


PHP正則表達(dá)式核心技術(shù)完全詳解 第12節(jié) [附加知識] 斷言匹配的評論 (共 條)

分享到微博請遵守國家法律
万盛区| 衡东县| 乐陵市| 仁化县| 独山县| 从化市| 武平县| 章丘市| 绍兴县| 天津市| 隆子县| 吉首市| 乌审旗| 确山县| 东阿县| 巍山| 罗定市| 东台市| 靖远县| 江津市| 慈溪市| 双柏县| 饶河县| 峨眉山市| 南安市| 弥渡县| 大石桥市| 綦江县| 调兵山市| 百色市| 星座| 镇江市| 灵川县| 广丰县| 资中县| 离岛区| 乐亭县| 鹤岗市| 耿马| 漠河县| 福清市|