溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

PHP正則表達(dá)式中的定界符和原子介紹

發(fā)布時(shí)間:2021-09-04 12:47:15 來源:億速云 閱讀:145 作者:chen 欄目:開發(fā)技術(shù)

這篇文章主要講解了“PHP正則表達(dá)式中的定界符和原子介紹”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“PHP正則表達(dá)式中的定界符和原子介紹”吧!



先來看一下正則表達(dá)式的定界符、正則表達(dá)式的構(gòu)成以及preg_match()函數(shù):

1,正則表達(dá)式的定界符。

除了字母、數(shù)字和反斜線\以外的任何字符都可以為定界符號,比如 | |、//、{}、!!等等,但是需要注意,如果沒有特殊需要,我們都使用正斜線//作為正則表達(dá)式的定界符號。

2,正則表達(dá)式的構(gòu)成。

我們看一下這個(gè)公式:/原子和元字符/模式修正符

也就是說,正則表達(dá)式的原子和元字符都放在定界符之間,而模式修正符放在定界符之外。

3,preg_match()函數(shù)

我們會(huì)在后面進(jìn)行詳細(xì)解釋,這里只是為了幫助測試,其返回一個(gè)布爾值,表示是否成功匹配。

了解完以上簡單的內(nèi)容,讓我們進(jìn)入正題。

正則表達(dá)式中的原子

什么是原子?原子是正則表達(dá)式的最基本組成單位,而且必須至少要包含一個(gè)原子。只要一個(gè)正則表達(dá)式可以單獨(dú)使用的字符,就是原子。

這個(gè)概念可能看起來很模糊,沒關(guān)系,下面我們來介紹一下正則表達(dá)式中原子的構(gòu)成方式。

原子構(gòu)成方式
1,所有打印(所有可以在屏幕上輸出的字符串)和非打印字符(看不到的,比如空格,換行符等等)

2,如果所有有意義的字符,想做為原子使用,統(tǒng)統(tǒng)使用“\”轉(zhuǎn)義字符進(jìn)行轉(zhuǎn)義即可。如:\. \* \+ \? \( \<\>。

注意:" \ "轉(zhuǎn)義字符可以將有意義的字符轉(zhuǎn)成沒意義的字符,還可以將沒意義的字符轉(zhuǎn)為有意義的字符。如:\d表示任意一個(gè)十進(jìn)制的數(shù)字。

3,在正則表達(dá)式中可以直接使用一些系統(tǒng)提供的代表范圍的原子,如下面的表格所示:

代表范圍的原子 說明 自定義原子表示法
 \d 表示任意一個(gè)十進(jìn)制的數(shù)字 [0-9]
 \D 表示任意一個(gè)除數(shù)字這外的字符 [^0-9]
 \s 表示任意一個(gè)空白字符,空格、\n\r\t\f [\n\r\t\f ]
 \S 表示任意一個(gè)非空白 [^\n\r\t\f ]
 \w 表示任意一個(gè)字 a-zA-Z0-9_ [a-zA-Z0-9_]
 \W 表示任意一個(gè)非字,除了a-zA-Z0-9_以外的任意一個(gè)字符 [^a-zA-Z0-9_]


4,自定義原子表(使用方括號[]),可以匹配方括號中的任何1個(gè)原子。

在上面的表格中我們已經(jīng)將系統(tǒng)提供的范圍原子使用自定義的方式作了等價(jià)轉(zhuǎn)換。由于系統(tǒng)不可能提供所有我需要的原子,所以自定義原子表就顯得十分必要了,比如我們想要匹配字母或者數(shù)字,就需要將原子寫成[a-zA-Z0-9]。

這里需要注意:

A,符號“-”表示范圍,如[a-z]表示小寫字母a到z,但千萬不要寫成[a-9]這種形式!

B, 符號“^”表示取反,一定要放在方括號的開頭,比如我們想要匹配非數(shù)字,則原子為[^0-9]。

下面我們來看一下正則表達(dá)式原子的使用實(shí)例,代碼如下:

復(fù)制代碼 代碼如下:


<?php
$pattern = '/\d/';//數(shù)字原子表,也就是正則表達(dá)式的模式
$string = 'dsadsadsa';//需要匹配的字符串
if(preg_match($pattern, $string)){
echo "正則表達(dá)式<strong>{$pattern} </strong>和字符串 <strong>{$string}</strong> 匹配成功";
}else{
echo "<span >正則表達(dá)式{$pattern}和字符串{$string}匹配失敗</span>";
}
?>



注意:自定義原子表中的原子有一個(gè)被字符串匹配上,就匹配成功了。而去掉自定義原子表的方括號,則表示匹配整個(gè)字符串。如'/abc/'表示字符串中必須有abc這個(gè)子串才能被匹配,而'/[abc]/'表示字符串中只要包含a、b和c中的任何一個(gè)字符,即被匹配。

大家可以將上面實(shí)例中的模式進(jìn)行修改(也就是正則表達(dá)式的模式變量$pattern),進(jìn)而對我們本節(jié)所講的正則表達(dá)式的原子進(jìn)行驗(yàn)證。

感謝各位的閱讀,以上就是“PHP正則表達(dá)式中的定界符和原子介紹”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對PHP正則表達(dá)式中的定界符和原子介紹這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI