搜尋
首頁後端開發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標記的正規表示式:/.*|/

符合首尾空格的正規表示式:(^\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

? 當字元緊接在任何其他限制符 (*, , ?, {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標記:.* |

#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標記的正規表示式:/.*| /#########

符合首尾空格的正規表示式:(^\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中文網其他相關文章!

陳述
本文轉載於:www.liqingbo.cn。如有侵權,請聯絡admin@php.cn刪除
php怎么去除字符串中的所有大写字母php怎么去除字符串中的所有大写字母Sep 26, 2022 pm 07:59 PM

两种去除方法:1、利用preg_replace()执行正则表达式搜索所有大写字母并将其替换为空字符即可,语法“preg_replace('/[A-Z]/','',$str)”。2、利用preg_filter()执行正则表达式搜索所有大写字母并将其替换为空字符即可,语法“preg_filter('/[A-Z]/','',$str)”。

php怎么替换nbsp空格符php怎么替换nbsp空格符Apr 24, 2022 pm 02:55 PM

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\&nbsp\;||\xc2\xa0)/","其他字符",$str)”语句。

使用Go语言编写高性能的正则表达式匹配使用Go语言编写高性能的正则表达式匹配Jun 15, 2023 pm 10:56 PM

随着数据量的不断增大,正则表达式匹配成为了程序中常用的操作之一。而在Go语言中,由于其天然的并行ism,以及与底层系统的交互性和高效性,使得Go语言的正则表达式匹配极具优势。那么如何使用Go语言编写高性能的正则表达式匹配呢?一、了解正则表达式在使用正则表达式前,我们首先需要了解正则表达式,了解其基本语法规则以及常用的匹配字符,使我们能够在编写正则表达式时更加

php怎么利用正则排除字符串中的字符php怎么利用正则排除字符串中的字符Dec 15, 2022 pm 03:30 PM

两种方法:1、用preg_replace(),可执行正则表达式的搜索和替换,只需将字符串中匹配的字符替换为空字符即可,语法“preg_replace(正则, "", $str)”。2、用preg_match_all(),可搜索字符串中所有和正则表达式匹配的结果,会将每次的匹配结果放在一个数组$array中,语法“preg_match_all(正则,$str,$array);”。

php怎么只获取中文字符php怎么只获取中文字符Apr 28, 2022 pm 08:15 PM

php中可用preg_match_all()配合正则表达式过滤字符串,只获取中文字符;语法“preg_match_all("/[\x{4e00}-\x{9fff}]+/u","$str",$arr);”,会将匹配字符存入“$arr”数组中。

javascript怎么正则替换非汉字的字符javascript怎么正则替换非汉字的字符Oct 13, 2022 pm 05:37 PM

在javascript中,可以使用replace()函数配合正则表达式“/[u4e00-u9fa5|,]+/ig”来查找字符串中的所有非汉字字符,并将其替换为其他指定值,语法“字符串对象.replace(/[u4e00-u9fa5|,]+/ig,'指定替换值')”。

Java语言正则表达式的使用方法Java语言正则表达式的使用方法Jun 10, 2023 am 08:13 AM

Java语言正则表达式的使用方法正则表达式是一种强大的文本处理工具,可以用来匹配和验证文本。在Java语言中,也可以使用正则表达式来实现字符串的匹配和处理。本文将介绍Java语言正则表达式的使用方法,涵盖正则表达式的基础知识,常用的正则表达式语法,以及在Java程序中使用正则表达式的方法。一、基础知识正则表达式是什么?正则表达式是一种文本模式,用来描述一组字

PHP开发:如何编写高效的正则表达式PHP开发:如何编写高效的正则表达式Jun 15, 2023 pm 09:04 PM

在PHP开发中,正则表达式是非常重要的工具,用于匹配、查找和替换文本中的特定字符串。然而,编写高效的正则表达式并不是一件易事,需要开发者具备一定的技巧和经验。下面是一些可以帮助您编写高效正则表达式的技巧:1.尽可能使用非贪婪匹配默认情况下,正则表达式是贪婪的,即它们将尽可能匹配更多的文本。在某些情况下,可能需要使用非贪婪匹配来避免这种情况。非贪婪匹配使用"

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具