在PHP中,可以利用正則表達式和“preg_match()”函數來匹配數字和字母,該函數用于執(zhí)行一個正則表達式的匹配,語法為“preg_match("/^[a-zA-Z0-9]+$/u", 需要匹配的字符串)”。
本文操作環(huán)境:Windows10系統(tǒng)、PHP7.1版、Dell G3電腦。
php怎么只匹配數字和字母
preg_match 函數用于執(zhí)行一個正則表達式匹配。
語法
int preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] )
搜索 subject 與 pattern 給定的正則表達式的一個匹配。
參數說明:
-
$pattern: 要搜索的模式,字符串形式。
-
$subject: 輸入字符串。
-
$matches: 如果提供了參數matches,它將被填充為搜索結果。 $matches[0]將包含完整模式匹配到的文本, $matches[1] 將包含第一個捕獲子組匹配到的文本,以此類推。
-
$flags:flags 可以被設置為以下標記值:PREG_OFFSET_CAPTURE: 如果傳遞了這個標記,對于每一個出現的匹配返回時會附加字符串偏移量(相對于目標字符串的)。 注意:這會改變填充到matches參數的數組,使其每個元素成為一個由 第0個元素是匹配到的字符串,第1個元素是該匹配字符串 在目標字符串subject中的偏移量。
-
offset: 通常,搜索從目標字符串的開始位置開始??蛇x參數 offset 用于 指定從目標字符串的某個未知開始搜索(單位是字節(jié))。
返回值
返回 pattern 的匹配次數。 它的值將是 0 次(不匹配)或 1 次,因為 preg_match() 在第一次匹配后 將會停止搜索。preg_match_all() 不同于此,它會一直搜索subject 直到到達結尾。 如果發(fā)生錯誤preg_match()返回 FALSE。
正則表達式:/^[a-zA-Z0-9]+$/u
釋義:
(1)“/”:正則表達式的定義,固定的書寫形式;
(2)“^”:表示開始;
(3)“[]”:表示一個字符組,匹配包含的任何字符。例如,“[ab]”匹配“plain”中的“a”;
(4)“a-z”:與小寫字母a-z匹配的字母范圍;
(5)“A-Z”:表示與大寫字母A-Z匹配的字母范圍;
(6)“0-9”:匹配范圍為0-9的數字;
(7)“+”:表示匹配數為一個或多個;
(8)“$”:匹配輸入行的結尾。如果設置了RegExp對象的Multiline屬性,則$也匹配“n”或“r”之前的位置;
(9)“u”:最后一個u是模式修飾符,嚴格來說,它可以是預定義的常數。表示使用unicode進行匹配。
擴展資料:
其它正則表達式符號的含義:
(1)“*”:與上一個子表達式匹配任意次。例如,zo*匹配“z”以及“zo”和“zoo”。*等效于{0,};
(2)“?”:匹配上一個子表達式零或一次。例如,“做(es)?”匹配“do”或“does”。?等效于{0,1};
(3)“{n}”:n是一個非負整數。匹配被確定n次。例如,“o{2}”不能與“Bob”中的“o”匹配,但是可以與“food”中的兩個o匹配;
(4)“{n,}”:n是一個非負整數。至少匹配n次。例如,“o{2,}”不能匹配“Bob”中的“o”,但是可以匹配“foooood”中的所有o。“o{1,}”等效于“o+”。“o{0,}”等效于“o*”;
(5)“ {n,m}”:m和n是非負整數,其中n <= m。 至少匹配n次,最多匹配m次。 例如,“ o {1,3}”將匹配“ fooooood”中的前三個o作為一個組,最后三個o作為一個組。 “ o {0,1}”等效于“ o?”。 請注意,逗號和兩個數字之間不能有空格。
推薦學習:《PHP視頻教程》