您好,登錄后才能下訂單哦!
這篇文章主要講解了“PHP正則表達式中的定界符和原子介紹”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“PHP正則表達式中的定界符和原子介紹”吧!
先來看一下正則表達式的定界符、正則表達式的構成以及preg_match()函數:
1,正則表達式的定界符。
除了字母、數字和反斜線\以外的任何字符都可以為定界符號,比如 | |、//、{}、!!等等,但是需要注意,如果沒有特殊需要,我們都使用正斜線//作為正則表達式的定界符號。
2,正則表達式的構成。
我們看一下這個公式:/原子和元字符/模式修正符
也就是說,正則表達式的原子和元字符都放在定界符之間,而模式修正符放在定界符之外。
3,preg_match()函數
我們會在后面進行詳細解釋,這里只是為了幫助測試,其返回一個布爾值,表示是否成功匹配。
了解完以上簡單的內容,讓我們進入正題。
正則表達式中的原子
什么是原子?原子是正則表達式的最基本組成單位,而且必須至少要包含一個原子。只要一個正則表達式可以單獨使用的字符,就是原子。
這個概念可能看起來很模糊,沒關系,下面我們來介紹一下正則表達式中原子的構成方式。
原子構成方式
1,所有打印(所有可以在屏幕上輸出的字符串)和非打印字符(看不到的,比如空格,換行符等等)
2,如果所有有意義的字符,想做為原子使用,統統使用“\”轉義字符進行轉義即可。如:\. \* \+ \? \( \<\>。
注意:" \ "轉義字符可以將有意義的字符轉成沒意義的字符,還可以將沒意義的字符轉為有意義的字符。如:\d表示任意一個十進制的數字。
3,在正則表達式中可以直接使用一些系統提供的代表范圍的原子,如下面的表格所示:
代表范圍的原子 | 說明 | 自定義原子表示法 |
\d | 表示任意一個十進制的數字 | [0-9] |
\D | 表示任意一個除數字這外的字符 | [^0-9] |
\s | 表示任意一個空白字符,空格、\n\r\t\f | [\n\r\t\f ] |
\S | 表示任意一個非空白 | [^\n\r\t\f ] |
\w | 表示任意一個字 a-zA-Z0-9_ | [a-zA-Z0-9_] |
\W | 表示任意一個非字,除了a-zA-Z0-9_以外的任意一個字符 | [^a-zA-Z0-9_] |
4,自定義原子表(使用方括號[]),可以匹配方括號中的任何1個原子。
在上面的表格中我們已經將系統提供的范圍原子使用自定義的方式作了等價轉換。由于系統不可能提供所有我需要的原子,所以自定義原子表就顯得十分必要了,比如我們想要匹配字母或者數字,就需要將原子寫成[a-zA-Z0-9]。
這里需要注意:
A,符號“-”表示范圍,如[a-z]表示小寫字母a到z,但千萬不要寫成[a-9]這種形式!
B, 符號“^”表示取反,一定要放在方括號的開頭,比如我們想要匹配非數字,則原子為[^0-9]。
下面我們來看一下正則表達式原子的使用實例,代碼如下:
復制代碼 代碼如下:
<?php
$pattern = '/\d/';//數字原子表,也就是正則表達式的模式
$string = 'dsadsadsa';//需要匹配的字符串
if(preg_match($pattern, $string)){
echo "正則表達式<strong>{$pattern} </strong>和字符串 <strong>{$string}</strong> 匹配成功";
}else{
echo "<span >正則表達式{$pattern}和字符串{$string}匹配失敗</span>";
}
?>
注意:自定義原子表中的原子有一個被字符串匹配上,就匹配成功了。而去掉自定義原子表的方括號,則表示匹配整個字符串。如'/abc/'表示字符串中必須有abc這個子串才能被匹配,而'/[abc]/'表示字符串中只要包含a、b和c中的任何一個字符,即被匹配。
大家可以將上面實例中的模式進行修改(也就是正則表達式的模式變量$pattern),進而對我們本節所講的正則表達式的原子進行驗證。
感謝各位的閱讀,以上就是“PHP正則表達式中的定界符和原子介紹”的內容了,經過本文的學習后,相信大家對PHP正則表達式中的定界符和原子介紹這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。