国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁 後端開發(fā) php教程 正規(guī)表示式之零寬斷言實例詳解

正規(guī)表示式之零寬斷言實例詳解

Jun 16, 2017 am 11:25 AM
正規(guī)則 正規(guī)表示式

這篇文章主要介紹了正規(guī)表示式之零寬斷言,簡單介紹了零寬斷言的概念、分類及php實現(xiàn)技巧與相關(guān)注意事項,需要的朋友可以參考下

本文實例講述了正規(guī)表示式之零寬斷言。分享給大家供大家參考,具體如下:

前言

之前我曾寫了一篇關(guān)於正規(guī)表示式的文章(http ://www.jb51.net/article/111359.htm) 在該文章中詳細介紹了正則,但是關(guān)於零寬斷言介紹卻是很少提及到。現(xiàn)在將該內(nèi)容補充一下。在本文中,主要解決以下問題:

① 什麼是零寬斷言,為什麼要使用零寬斷言
② 怎麼使用零寬斷言

概念

零寬斷言,大多地方這樣定義它,用於查找在某些內(nèi)容(但不包括這些內(nèi)容)之前或之後的東西,也就是說它們像\b ^ $ \< > 這樣的錨定作用,用於指定一個位置,這個位置應(yīng)該滿足一定的條件(即斷言),因此它們也被稱為零寬斷言。我的理解是在限定位置的字串之前或之後進行匹配查找。所以零寬斷言,執(zhí)行過程分兩種情況,如果是正向斷言,應(yīng)該是這樣的,第一步,判斷判斷斷言是否為真(即是否滿足一定條件)第二步,如果滿足條件,則進行下一步查找匹配。如果是反向斷言,第一步還是按照正規(guī)表示式順序去比對。第二步,遇到反向代言,判斷是否滿足反之代言。

正先行斷言

什麼是正先行斷言,就是在字串對應(yīng)位置之前進行查找匹配,使用(?=exp) 匹配exp前面的位置。

實例

$str="abcgwcab";
$parent=&#39;/bc(?=gw)/&#39;;
$str=preg_match($parent,$str,$match);
var_dump($match);
/**
輸出結(jié)果:
int 1
array (size=1) 
  0 => string &#39;bc&#39; (length=2)
  */

解析:首先尋找字串」abcgwcab」中g(shù)w位置,斷言為真,然後在匹配bc。如果將正規(guī)表示式寫成$parent='/bc(?=gw)ca/'; 將會符合不成功。

反先行斷言

什麼是反先行斷言,使用 (?!exp) 來匹配後面跟的不是exp。

實例:

$str="abcgwcab";
$parent=&#39;/bc(?!ww)gw/&#39;;
$str=preg_match($parent,$str,$match);
var_dump($str);
var_dump($match);
/**
輸出:
int 1
array (size=1)
 0 => string &#39;bcgw&#39; (length=4)
*/

解析:先判斷字串是否包含bc,然後判斷其後面不是ww,最後符合gw。可以看出反向斷言之前後之後,能夠在增加其他匹配條件。

正後發(fā)斷言

什麼是正後發(fā)斷言,就是在字串對應(yīng)位置之後進行查找匹配, (?<= exp) 符合exp後面的位置

實例:

$str="abcgwcab";
$parent=&#39;/(?<=gw)ca/&#39;;
$str=preg_match($parent,$str,$match);
var_dump($str);
var_dump($match);
/**
輸出結(jié)果:
int 1
array (size=1)
 0 => string &#39;ca&#39; (length=2)
*/

解析:第一步,尋找字元」abcgwcab」中是否包含有g(shù)w ,傳回結(jié)果為true,然後進行第二步,找出gw後面是否有ca。

反後發(fā)斷言

什麼是反後發(fā)斷言,使用(?

$str="abcgwcab";
$parent=&#39;/(?<!bc)gw/&#39;;
$str=preg_match($parent,$str,$match);
var_dump($str);
var_dump($match);
/**
int 0
array (size=0)
 empty
*/

解析:先在字串中比對gw,然後判斷其前面是不是bc,發(fā)現(xiàn)前面是bc,故回傳false。

##範例1:

\d+(?=abc) 判斷字串中是否包含'abc',且其前面是否包含一個或多個數(shù)字

例2:(?<=\d\d)\w
判斷字串中是否存在連續(xù)兩個數(shù)字,且其後麵包含一個字母

例3 :\d{3} (?!55)
判斷字串中是否包含連續(xù)三個數(shù)字,且三個數(shù)字後面不是55

例4: (?<!ac)\w\d
判斷一個字串是否包含一個字母加數(shù)字的組合,且其前面不是ac

總結(jié)

先行斷言與後發(fā)斷言區(qū)別?正規(guī)表示式,斷言在其他正規(guī)表示式之前。

以上是正規(guī)表示式之零寬斷言實例詳解的詳細內(nèi)容。更多資訊請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Laravel 教程
1601
29
PHP教程
1502
276
PHP正規(guī)表示式驗證:數(shù)位格式偵測 PHP正規(guī)表示式驗證:數(shù)位格式偵測 Mar 21, 2024 am 09:45 AM

PHP正規(guī)表示式驗證:數(shù)位格式偵測在編寫PHP程式時,經(jīng)常需要對使用者輸入的資料進行驗證,其中一個常見的驗證是檢查資料是否符合指定的數(shù)字格式。在PHP中,可以使用正規(guī)表示式來實現(xiàn)這種驗證。本文將介紹如何使用PHP正規(guī)表示式來驗證數(shù)字格式,並提供具體的程式碼範例。首先,讓我們來看看常見的數(shù)字格式驗證要求:整數(shù):只包含數(shù)字0-9,可以以正負號開頭,不包含小數(shù)點。浮點

如何在 Go 中使用正規(guī)表示式匹配時間戳記? 如何在 Go 中使用正規(guī)表示式匹配時間戳記? Jun 02, 2024 am 09:00 AM

在Go中,可以使用正規(guī)表示式比對時間戳記:編譯正規(guī)表示式字串,例如用於匹配ISO8601時間戳記的表達式:^\d{4}-\d{2}-\d{2}T \d{2}:\d{2}:\d{2}(\.\d+)?(Z|[+-][0-9]{2}:[0-9]{2})$ 。使用regexp.MatchString函數(shù)檢查字串是否與正規(guī)表示式相符。

如何使用正規(guī)表示式在 Golang 中驗證電子郵件地址? 如何使用正規(guī)表示式在 Golang 中驗證電子郵件地址? May 31, 2024 pm 01:04 PM

若要使用正規(guī)表示式在Golang中驗證電子郵件地址,請執(zhí)行下列步驟:使用regexp.MustCompile建立正規(guī)表示式模式,以符合有效的電子郵件地址格式。使用MatchString函數(shù)檢查字串是否與模式相符。此模式涵蓋了大多數(shù)有效的電子郵件地址格式,包括:局部使用者名稱可以包含字母、數(shù)字和特殊字元:!.#$%&'*+/=?^_{|}~-`網(wǎng)域至少包含一個字母,後面可以跟字母、數(shù)字或連字符頂級域名(TLD)不能超過63個字符長

如何用 Golang 正規(guī)匹配多個單字或字串? 如何用 Golang 正規(guī)匹配多個單字或字串? May 31, 2024 am 10:32 AM

Golang正規(guī)表示式使用管道符|來匹配多個單字或字串,將各個選項作為邏輯OR表達式分隔開來。例如:匹配"fox"或"dog":fox|dog匹配"quick"、"brown"或"lazy":(quick|brown|lazy)匹配"Go"、"Python"或"Java":Go|Python |Java匹配字或4位郵遞區(qū)號:([a-zA

如何在 Go 中使用正規(guī)表示式驗證密碼? 如何在 Go 中使用正規(guī)表示式驗證密碼? Jun 02, 2024 pm 07:31 PM

Go中使用正規(guī)表示式驗證密碼的方法如下:定義正規(guī)表示式模式,符合最低密碼要求:至少8個字符,包含小寫字母、大寫字母、數(shù)字和特殊字符。使用regexp套件中的MustCompile函式編譯正規(guī)表示式模式。使用MatchString方法測試輸入字串是否與正規(guī)表示式模式相符。

中文字元過濾:PHP正規(guī)表示式實踐 中文字元過濾:PHP正規(guī)表示式實踐 Mar 24, 2024 pm 04:48 PM

PHP是一種廣泛應(yīng)用的程式語言,特別在Web開發(fā)領(lǐng)域中非常流行。在網(wǎng)路開發(fā)過程中,經(jīng)常會遇到需要對使用者輸入的文字進行過濾、驗證等操作,其中字元過濾是一項十分重要的操作。本文將介紹如何使用PHP中的正規(guī)表示式來實現(xiàn)中文字元過濾的功能,並給出具體的程式碼範例。首先,我們要先明確一下中文字元的Unicode範圍是從u4e00到u9fa5,也就是所有的漢字都處於這個範圍

Golang 正規(guī)表示式的使用指南 Golang 正規(guī)表示式的使用指南 Apr 08, 2024 pm 02:15 PM

Go中的正規(guī)表示式提供了一個強大的字串處理工具:使用regexp套件進行正規(guī)表示式操作。利用正規(guī)表示式語法來匹配和操作字串??善ヅ渥衷悇e、重複字元、分組、錨點和邊界符。透過MatchString匹配字串、FindStringSubmatch提取匹配和ReplaceAllString替換字串。應(yīng)用程式場景包括驗證電子郵件地址、提取HTML連結(jié)等。

PHP正規(guī)表示式:精確匹配與排除模糊包含 PHP正規(guī)表示式:精確匹配與排除模糊包含 Feb 28, 2024 pm 01:03 PM

PHP正規(guī)表示式:精確匹配與排除模糊包含正規(guī)表示式是一種強大的文字匹配工具,能夠幫助程式設(shè)計師在處理文字時進行高效的搜尋、替換和篩選。在PHP中,正規(guī)表示式也被廣泛應(yīng)用於字串處理和資料匹配。本文將重點介紹在PHP中如何進行精確配對和排除模糊包含的操作,同時結(jié)合具體的程式碼範例進行說明。精確匹配精確匹配意味著只匹配符合完全條件的字串,不匹配任何變種或包含額外字

See all articles