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

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

分享到微博請遵守國家法律
肇东市| 固始县| 邢台县| 米脂县| 额济纳旗| 孝义市| 白沙| 巩留县| 石河子市| 靖宇县| 邮箱| 彭州市| 巴彦县| 柳林县| 甘孜县| 嵊州市| 准格尔旗| 陆良县| 石首市| 安庆市| 裕民县| 固安县| 田东县| 文水县| 嘉兴市| 迁西县| 上蔡县| 东兰县| 衡东县| 贡嘎县| 黔江区| 射阳县| 古丈县| 贡觉县| 如皋市| 北流市| 乌什县| 固阳县| 如皋市| 杭锦后旗| 武宁县|