最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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é) [附加知識] 斷言匹配的評論 (共 條)

分享到微博請遵守國家法律
万安县| 海城市| 昭通市| 隆安县| 收藏| 密云县| 常州市| 周宁县| 邵阳市| 眉山市| 冷水江市| 电白县| 天峨县| 孝昌县| 郯城县| 华坪县| 托克逊县| 阳曲县| 嘉荫县| 丰宁| 青浦区| 隆化县| 柳河县| 鞍山市| 长乐市| 图片| 陆丰市| 遵义市| 通道| 和政县| 大宁县| 广丰县| 祁连县| 武清区| 桐柏县| 宜城市| 桂林市| 如东县| 绥棱县| 丰台区| 青海省|