PHP正規表示式之定界符和原子介紹

2022-05-08 14:15:06 字數 2192 閱讀 5774

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))和字串匹配成功";

}else和字串匹配失敗";

} ?>

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

大家可以將上面例項中的模式進行修改(也就是正規表示式的模式變數$pattern),進而對我們本節所講的正規表示式的原子進行驗證。

**:<?php

//接受表單傳遞過來的資料

$str = $_get['str'];

//$str = "d";

//宣告乙個正規表示式

$pattern = "/./";

//使用乙個正則函式

$result = preg_match($pattern,$str,$match);

//echo '匹配結果為:'.$result;

if($result)else

echo '';

var_dump($match);

?>

PHP之正規表示式

pattern 正規表示式 subject 正規表示式匹配的資料 preg match all pattern,subject,matches 匹配第乙個符合的 preg match 0 9 sdad456dsad5dsa4dsad4e4d e5s8 show1 匹配所有符合標準的 preg mat...

php正規表示式詳解,PHP正規表示式使用詳解

操作符 描述 轉義符 圓括號和方括號 限定符 anymetacharacter 位置和順序 或 操作 全部符號解釋 字元 描述 將下乙個字元標記為乙個特殊字元 或乙個原義字元 或乙個 向後引用 或乙個八進位制轉義符。例如,n 匹配字元 n n 匹配乙個換行符。序列 匹配 而 則匹配 匹配輸入字串的開...

正規表示式 原子 筆記

筆記直接使用pycharm製作,需要原始檔請私聊。正規表示式 原子import re 普通字元作為原子 string taoyunjiaoyu pat yun rst re.search pat,string print rst print 輸出結果 非列印字元做原子 n 換行 t 製表符 三引號可...