首頁 後端開發 php教程 php中常用的正規表示式使用方法

php中常用的正規表示式使用方法

Jan 30, 2020 pm 10:30 PM
正規表示式

php中常用的正規表示式使用方法

平常做網站常要用正規表示式,以下是一些講解和例子,僅供大家參考和修改使用:

匹配數字

"^\d $"  //非負整數(正整數0)

"^[0-9]*[1-9][0-9] *$"  //正整數

"^((-\d )|(0 ))$"  //非正整數(負整數0)

"^-[0- 9]*[1-9][0-9]*$"  //負整數

"^-?\d $"    //整數

"^\d (\. \d )?$"  //非負浮點數(正浮點數0)

"^(([0-9] \.[0-9]*[1-9][0-9 ]*)|([0-9]*[1-9][0-9]*\.[0-9] )|([0-9]*[1-9][0-9]*) )$"  //正浮點數

"^((-\d (\.\d )?)|(0 (\.0 )?))$"  //非正浮點數(負浮點數0)

"^(-(([0-9] \.[0-9]*[1-9][0-9]*)|([0-9]*[ 1-9][0-9]*\.[0-9] )|([0-9]*[1-9][0-9]*)))$"  //負浮點數

"^(-?\d )(\.\d )?$"  //浮點數

符合字母

"^[A-Za-z] $"  / /由26個英文字母組成的字串

"^[A-Z] $"  //由26個英文字母的大寫組成的字串

"^[a-z] $"  / /由26個英文字母的小寫組成的字串

"^[A-Za-z0-9] $"  //由數字和26個英文字母組成的字串

# "^\w $"  //由數字、26個英文字母或下劃線組成的字串

#匹配實例

"^[\w-] (\.[\w-] )*@[\w-] (\.[\w-] ) $"    //email位址

"^[a-zA-z] ://(\w (-\w )* )(\.(\w (-\w )*))*(\?\S*)?$"  //url

/^(d{2}|d{4} )-((0([1-9]{1}))|(1[1|2]))-(([0-2]([1-9]{1}))|(3[0 |1]))$/ // 年-月-日

/^((0([1-9]{1}))|(1[1 |2]))/(([0-2]([1-9]{1}))|(3[0|1]))/(d{2}|d{4})$/ //月/日/年

"^([w-.] )@(([[0-9]{1,3}.[0-9]{ 1,3}.[0-9]{1,3}.)|(([w-] .) ))([a-zA-Z]{2,4}|[0-9]{1, 3})(]?)$" //Emil

/^((\ ?[0-9]{2,4}\-[0-9] {3,4}\-)|([0-9]{3,4}\-))?([0-9]{7,8})(\-[0-9] )?$/ / /電話號碼

"^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1 ,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d {1,2}|1dd|2[0-4]d|25[0-5])$" //IP位址

其他符合

符合中文字元的正規表示式:[\u4e00-\u9fa5]

符合雙位元組字元(包括漢字在內):[^\x00-\xff]

符合空白行的正規表示式:\n[\s| ]*\r

符合HTML標記的正規表示式:/<(.*)>.*<\ 1="">|<(.*)>/

符合首尾空格的正規表示式:(^\s*)|(\s*$)

符合Email位址的正規表示式:\w ([- .]\w )*@\w ([-.]\w )*\.\w ([-.]\w )*

符合網址URL的正規表示式:^[a-zA-z] ://(\\w (-\\w )*)(\\.(\\w (-\\ w )*))*(\\?\\S*)?$

#符合帳號是否合法(字母開頭,允許5-16位元組,允許字母數字底線):^[a-zA-Z][a-zA-Z0-9_]{4,15}$

符合國內電話號碼:(\d{3}- |\d{4}-)?(\d{8}|\d{7})?

配對騰訊QQ號:^[1-9]*[1-9][0-9 ]*$

元字元及其在正規表示式上下文中的行為:

\將下一個字元標記為一個特殊字元、或一個原義字元、或一個後向引用、或一個八進制轉義符。

^ 符合輸入字串的開始位置。如果設定了 RegExp 物件的Multiline 屬性,^ 也符合 ’\n’ 或 ’\r’ 之後的位置。

$ 符合輸入字串的結束位置。如果設定了 RegExp 物件的Multiline 屬性,$ 也符合 ’\n’ 或 ’\r’ 之前的位置。

* 符合前面的子表達式零次或多次

符合前面的子表達式一次或多次。等價於 {1,}。

? 符合前面的子表達式零次或一次。 ? 等價於 {0,1}。

{n} n 是一個非負整數,匹配確定的n 次。

{n,} n 為非負整數,至少符合n 次。

{n,m} m 和 n 都是非負整數,其中n <= m。最少匹配 n 次且最多匹配 m 次。在逗號和兩個數之間不能有空格。

? 當字元緊接在任何其他限制符 (*, , ?, {n}, {n,}, {n,m}) 後面時,匹配模式是非貪婪的。非貪婪模式盡可能少的匹配所搜尋的字串,而預設的貪婪模式則盡可能多的匹配所搜尋的字串。

. 符合 "\n" 以外的任何單一字元。若要符合包括 ’\n’ 在內的任何字符,請使用象 ’[.\n]’ 的模式。

 (pattern) 符合pattern 並取得此符合。

(?:pattern) 匹配pattern 但不取得匹配結果,也就是說這是一個非獲取匹配,不進行儲存以供以後使用。

(?=pattern) 正向預查,在任何符合 pattern 的字串開始處符合尋找字串。這是一個非獲取匹配,也就是說,該匹配不需要獲取供以後使用。

(?!pattern) 負向預查,與(?=pattern)作用相反

x|y 符合 x 或 y。

[xyz] 字元集合。

[^xyz] 負值字元集合。

[a-z] 字元範圍,符合指定範圍內的任意字元。

[^a-z] 負值字元範圍,符合任何不在指定範圍內的任意字元。

\b 符合一個單字邊界,也就是指單字和空格間的位置。

\B 符合非單字邊界。

\cx 符合x指明的控製字元。

\d 符合一個數字字元。等價於 [0-9]。

\D 符合一個非數字字元。等價於 [^0-9]。

\f 符合一個換頁符號。等價於 \x0c 和 \cL。

\n 符合一個換行符號。等價於 \x0a 和 \cJ。

\r 符合一個回車符。等價於 \x0d 和 \cM。

\s 會匹配任何空白字符,包括空格、製表符、換頁符等等。等價於[ \f\n\r\t\v]。

\S 符合任何非空白字元。等價於 [^ \f\n\r\t\v]。

\t 符合一個製表符。等價於 \x09 和 \cI。

\v 符合一個垂直製表符。等價於 \x0b 和 \cK。

\w 符合包括下劃線的任何單字字元。等價於’[A-Za-z0-9_]’。

\W 符合任何非單字字元。等價於 ’[^A-Za-z0-9_]’。

\xn 符合 n,其中 n 為十六進位轉義值。十六進制轉義值必須為確定的兩個數字長。

\num 符合 num,其中num是一個正整數。對所獲取的匹配的引用。

\n 標識一個八進位轉義值或一個後向引用。如果 \n 之前至少 n 個取得的子表達式,則 n 為後向引用。否則,如果 n 為八進制數字 (0-7),則 n 為一個八進制轉義值。

\nm 標識一個八進位轉義值或一個後向引用。如果 \nm 之前至少有is preceded by at least nm 個取得得子表達式,則 nm 為後向引用。如果 \nm 之前至少有 n 個獲取,則 n 為一個後接文字 m 的後向引用。如果前面的條件都不滿足,若 n 和 m 均為八進位數字 (0-7),則 \nm 將符合八進位轉義值 nm。

\nml 如果 n 為八進位數字 (0-3),且 m 和 l 均為八進位數字 (0-7),則符合八進位轉義值 nml。

\un 符合 n,其中 n 是一個用四個十六進位數字表示的Unicode字元。

符合中文字元的正規表示式: [u4e00-u9fa5]

#符合雙位元組字元(包括漢字在內):[^x00-xff]

#符合空白行的正規表示式:n[s| ]*r

#符合HTML標記的正規表示式:/<(.*)>. *|<(.*)>/

符合首尾空格的正規表示式:(^s*)|(s*$)

符合Email位址的正規表示式:w ([- .]w )*@w ([-.]w )*.w ([-.]w )*

符合網址URL的正規表示式:http://([w-] .) [w-] (/[w- ./?%&=]*)?

利用正規表示式限制網頁表單裡的文字方塊輸入內容:

用正規表示式限制只能輸入中文:onkeyup="value=value.replace(/[^u4E00-u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/ [^u4E00-u9FA5]/g,''))"

用正規表示式限制只能輸入全角字元: onkeyup="value=value.replace(/ [^uFF00-uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^uFF00-uFFFF]/g,''))"

用正規表示式限制只能輸入數字:onkeyup="value=value.replace(/[^d]/g,'') "onbeforepaste="clipboardData .setData('text',clipboardData.getData('text').replace(/[^d]/g,''))"

用正規表示式限制只能輸入數字和英文:onkeyup="value=value.replace(/[W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace( /[^d]/g,''))"

一些常用的正規實例

1、非負整數:^\d $

2、正整數:^[0-9]*[1-9][0-9]*$

3、非正整數:^((-\d )|(0 ))$

#4、負整數:^-[0-9]*[1-9][0- 9]*$

5、整數:^-?\d $

6、非負浮點數:^\d (\.\d )?$

7、正浮點數:^((0-9) \.[0-9]*[1 -9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9] )|([0-9]*[1-9] [0-9]*))$

8、非正浮點數:^((-\d \.\d )?)|(0 (\. 0 )?))$

9、負浮點數:^(-((正浮點數正規)))$

10、英文字串:^[A-Za-z] $

#11、英文大寫字串:^[A-Z] $

12、英文小寫字串:^[a-z] $

#13、英文字元數字串:^[A-Za -z0-9] $

14、英數字加底線字串:^\w $

15、 E-mail位址:^[\w-] (\.[\w-] )*@[\w-] (\.[\w-] ) $

16、URL:^[a-zA-Z] ://(\w (-\w )*)(\.(\w (-\w )*))*(\?\s*)? $

或:^http:\/\/[A-Za-z0-9] \.[A-Za-z0-9] [\/=\ ?%\-&_~`@[\]\': !]*([^<>\"\"])*$

17、郵政編碼:^[1-9]\d{5}$

18、中文:^[\u0391-\uFFE5] $

#19、電話號碼:^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3} \)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$

20、手機號碼:^((\(\d{2,3}\))|(\d{3}\-))?13\d{9}$

21、雙位元組字元(包括漢字在內):^\x00-\xff

22、符合首尾空格:(^ \s*)|(\s*$)(像vbscript那樣的trim函數)

#23、符合HTML標記:<(.*)>.* <\ 1="">|<(.*)>

#24、符合空白行:\n[\s| ]*\r

25、擷取資訊中的網路連結:(h|H)(r|R)(e|E)(f|F) *= *('|" )?(\w|\\|\/|\.) ('|"| *|>)?

#26、提取資訊中的郵件地址: \w ([- .]\w )*@\w ([-.]\w )*\.\w ([-.]\w )*

27、擷取資訊中的圖片連結:(s|S)(r|R)(c|C) *= *('|")?(\w|\\|\/|\.) ('| "| *|>)?

28、提取資訊中的IP位址:(\d )\.(\d )\.(\d )\. (\d )

29、擷取資訊中的中國手機號碼:(86)*0*13\d{9}

30、提取資訊中的中國固定電話號碼:(\(\d{3,4}\)|\d{3,4}-|\s)?\d{8}

31、擷取資訊中的中國電話號碼(包括行動與固定電話):(\(\d{3,4}\)|\d{3,4} -|\s)?\d{7,14}

32、提取資訊中的中國郵遞區號:[1-9]{1}(\d ) {5}

33、擷取資訊中的浮點數(即小數):(-?\d*)\.?\d

34、提取資訊中的任何數字:(-?\d*)(\.\d )?

35、IP: (\d )\.(\d )\.(\d )\.(\d )

#36、電話區號:/^0\d{2, 3}$/

37、騰訊QQ號:^[1-9]*[1-9][0-9]*$

38、帳號(字母開頭,允許5-16字節,允許字母數字下劃線):^[a-zA-Z][a-zA-Z0-9_]{4,15 }$

39、中文、英文、數位及底線:^[\u4e00-\u9fa5_a-zA-Z0-9] $

#附加

符合中文字元的正規表示式:[\u4e00-\u9fa5]




########## ###符合雙位元組字元(包括漢字在內):[^\x00-\xff]################符合空行的正規表示式:\n[\ s| ]*\r###############符合HTML標記的正規表示式:/<(.*)>.*<\ 1="">| <(.*)>/#########

符合首尾空格的正規表示式:(^\s*)|(\s*$)

符合IP位址的正規表示式:/(\ d )\.(\d )\.(\d )\.(\d )/g //

#符合Email位址的正規表示式:\w ( [- .]\w )*@\w ([-.]\w )*\.\w ([-.]\w )*

符合網址URL的正規表示式:http://(/[\w-] \.) [\w-] (/[\w- ./?%&=]*)?

sql語句:^(select|drop|delete|create|update|insert).*$

以上是php中常用的正規表示式使用方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

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

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

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

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

熱門話題

Java教學
1672
14
CakePHP 教程
1428
52
Laravel 教程
1332
25
PHP教程
1276
29
C# 教程
1256
24
PHP正規表示式驗證:數位格式偵測 PHP正規表示式驗證:數位格式偵測 Mar 21, 2024 am 09:45 AM

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

掌握Go語言的正規表示式和字串處理 掌握Go語言的正規表示式和字串處理 Nov 30, 2023 am 09:54 AM

Go語言作為一門現代化的程式語言,提供了強大的正規表示式和字串處理功能,使得開發者能夠更有效率地處理字串資料。掌握Go語言的正規表示式和字串處理,對於開發者來說是非常重要的。本文將詳細介紹Go語言中正規表示式的基本概念和用法,以及如何使用Go語言處理字串。一、正規表示式正規表示式是用來描述字串模式的工具,能夠方便地實現字串的匹配、尋找和替換等操

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

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

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

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

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

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

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

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

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

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

PHP傳回一個字串在另一個字串中開始位置到結束位置的字串 PHP傳回一個字串在另一個字串中開始位置到結束位置的字串 Mar 21, 2024 am 10:31 AM

這篇文章將為大家詳細講解有關PHP返回一個字符串在另一個字符串中開始位置到結束位置的字符串,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章後可以有所收穫。 PHP中使用substr()函數從字串中擷取子字串substr()函數可從字串中擷取指定範圍內的字元。其語法如下:substr(string,start,length)其中:string:要從中提取子字串的原始字串。 start:子字串開始位置的索引(從0開始)。 length(可選):子字串的長度。如果未指定,則提

See all articles