Ⅰ 求php 的正則表達式 大全
匹配中文字元的正則表達式: [\u4e00-\u9fa5] 評註:匹配中文還真是個頭疼的事,有了這個表達式就好辦了 匹配雙位元組字元(包括漢字在內):[^\x00-\xff] 評註:可以用來計算字元串的長度(一個雙位元組字元長度計2,ASCII字元計1) 匹配空白行的正則表達式:\n\s*\r 評註:可以用來刪除空白行 匹配HTML標記的正則表達式:<(\S*?)[^>]*>.*?</\1>|<.*? /> 評註:網上流傳的版本太糟糕,上面這個也僅僅能匹配部分,對於復雜的嵌套標記依舊無能為 匹配首尾空白字元的正則表達式:^\s*|\s*$ 評註:可以用來刪除行首行尾的空白字元(包括空格、製表符、換頁符等等),非常有用的表達式 匹配Email地址的正則表達式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* 評註:表單驗證時很實用 匹配網址URL的正則表達式:[a-zA-z]+://[^\s]* 評註:網上流傳的版本功能很有限,上面這個基本可以滿足需求 匹配帳號是否合法(字母開頭,允許5-16位元組,允許字母數字下劃線):^[a-zA-Z][a-zA-Z0-9_]{4,15}$ 評註:表單驗證時很實用 匹配國內電話號碼:\d{3}-\d{8}|\d{4}-\d{7} 評註:匹配形式如 0511-4405222 或 021-87888822 匹配騰訊QQ號:[1-9][0-9]{4,} 評註:騰訊QQ號從10000開始 匹配中國郵政編碼:[1-9]\d{5}(?!\d) 評註:中國郵政編碼為6位數字 匹配身份證:\d{15}|\d{18} 評註:中國的身份證為15位或18位 匹配ip地址:\d+\.\d+\.\d+\.\d+ 評註:提取ip地址時有用 匹配特定數字: ^[1-9]\d*$ //匹配正整數 ^-[1-9]\d*$ //匹配負整數 ^-?[1-9]\d*$ //匹配整數 ^[1-9]\d*|0$ //匹配非負整數(正整數 + 0) ^-[1-9]\d*|0$ //匹配非正整數(負整數 + 0) ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$ //匹配正浮點數 ^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$ //匹配負浮點數 ^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$ //匹配浮點數 ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$ //匹配非負浮點數(正浮點數 + 0) ^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$ //匹配非正浮點數(負浮點數 + 0) 評註:處理大量數據時有用,具體應用時注意修正 匹配特定字元串: ^[A-Za-z]+$ //匹配由26個英文字母組成的字元串 ^[A-Z]+$ //匹配由26個英文字母的大寫組成的字元串 ^[a-z]+$ //匹配由26個英文字母的小寫組成的字元串 ^[A-Za-z0-9]+$ //匹配由數字和26個英文字母組成的字元串 ^\w+$ //匹配由數字、26個英文字母或者下劃線組成的字元串 /http:\/\/(.*)\//i //匹配外部鏈接地址
滿意請採納
Ⅱ 超常用的PHP正則表達式收集整理
以下就是對超常用的PHP正則表達式進行的收集整理,為了方便大家更快更好的掌握php正則表達式。
:]*$!是對php中單引號的轉義。或者還有更簡單的!^/?[a-z0-9=:]*$!ii表示忽略大小寫。模式分隔符就是為了區分表達式和像i這樣的模式修飾符而設計的。
什麼是正則表達式:簡單的說,正則表達式是一種可以用於模式匹配和替換的強大工具。在幾乎所有的基於UNIX/LINUX系統的軟體工具中找到正則表達式的痕跡,例如:Perl或PHP腳本語言。
ThinkPHP的自動驗證常用的正則一般我們見的比較多的是設置規則為require、email之類的,其實這些本身也是屬於正則表達式驗證方式,只是系統內置定義了一些常用的正則表達式而已。
關鍵地方是漢字的表示xa0-xff。下面是我寫的例子程序,調試通過:?phpstr=漢字123456abcdef+-*/ABCDE!@#$%^&*()結尾。
Ⅲ php正則匹配數字
式子:/^[a-zA-Z0-9]+$/u
釋義:
"/":表示正則表達式的定義,固定寫法。
"^":表示開頭。
"[]":表示字元組。匹配所包含的任意一個字元。如,「[ab]」匹配「plain」中的「a」。
"a-z":表示匹配小寫字母a-z的字母範圍。
"A-Z":表示匹配大寫字母A-Z的字母範圍。
"0-9":表示匹配0-9的數字范圍。
"+":表示匹配次數大於等於1。
"$":匹配輸入行尾。如果設置了RegExp對象Multiline屬性,$也匹配「 」或「 」之前的位置。
"u":最後的u是模式修飾符,嚴格的說可能叫預定義常量。表示使用unicode進行匹配。
(3)php正整數正則表達式擴展閱讀:
正則表達式的特點是:
1. 靈活性、邏輯性和功能性非常強;
2. 可以迅速地用極簡單的方式達到字元串的復雜控制。
3. 對於剛接觸的人來說,比較晦澀難懂。
由於正則表達式主要應用對象是文本,因此它在各種文本編輯器場合都有應用,小到著名編輯器EditPlus,大到Microsoft Word、Visual Studio等大型編輯器,都可以使用正則表達式來處理文本內容。
Ⅳ 請問 php 正則中的這些是什麼編碼呢
一:[\x81-\xfe]格式的正則:
$s=preg_replace('/^([\x81-\xfe][\x40-\xfe])*/','0',$neirong); 這裡面的大多是日韓文字
二:x{4e00}格式的正則:
preg_match("/^[\x{4e00}-\x{9fa5}]{1,4}/u",$str); 這裡面是匹配中文;
——————————————————————————
這些字元集尤其是日文字元集的各種字、標點以及特殊符號的時候有所幫助。
UTF8
[\x01-\x7f]|[\xc0-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}
UTF16
[\x00-\xd7][\xe0-\xff]|[\xd8-\xdf][\x00-\xff]{2}
JIS
[\x20-\x7e]|[\x21-\x5f]|[\x21-\x7e]{2}
SJIS
[\x20-\x7e]|[\xa1-\xdf]|([\x81-\x9f]|[\xe0-\xef])([\x40-\x7e]|[\x80-\xfc])
EUC_JP
[\x20-\x7e]|\x81[\xa1-\xdf]|[\xa1-\xfe][\xa1-\xfe]|\x8f[\xa1-\xfe]{2}
EUC_JP標點符號及特殊字元
[\xa1-\xa2][\xa0-\xfe]
EUC_JP全形數字
\xa3[\xb0-\xb9]
EUC_JP全形大寫英文
\xa3[\xc1-\xda]
EUC_JP全形小寫英文
\xa3[\xe1-\xfa]
EUC_JP全形平假名
\xa4[\xa1-\xf3]
EUC_JP全形片假名 [color=Red]2007-03-12 15:00更新[/color]
\xa3[\xb0-\xb9]|\xa3[\xc1-\xda]|\xa5[\xa1-\xf6][\xa3][\xb0-\xfa]|[\xa1][\xbc-\xbe]|[\xa1][\xdd]
EUC_JP全形漢字 [color=Red]2007-03-12 15:06更新[/color]
[\xb0-\xcf][\xa0-\xd3]|[\xd0-\xf4][\xa0-\xfe]|[\xB0-\xF3][\xA1-\xFE]|[\xF4][\xA1-\xA6]|[\xA4][\xA1-\xF3]|[\xA5][\xA1-\xF6]|[\xA1][\xBC-\xBE]
Big5
[\x01-\x7f]|[\x81-\xfe]([\x40-\x7e]|[\xa1-\xfe])
GBK
[\x01-\x7f]|[\x81-\xfe][\x40-\xfe]
GB2312漢字
[\xb0-\xf7][\xa0-\xfe]
GB2312半形標點符號及特殊符號
\xa1[\xa2-\xfe]
GB2312羅馬數組及項目序號
\xa2([\xa1-\xaa]|[\xb1-\xbf]|[\xc0-\xdf]|[\xe0-\xe2]|[\xe5-\xee]|[\xf1-\xfc])
GB2312全形標點及全形字母
\xa3[\xa1-\xfe]
GB2312日文平假名
\xa4[\xa1-\xf3]
GB2312日文片假名
\xa5[\xa1-\xf6]
補充:
GB18030
[\x00-\x7f]|[\x81-\xfe][\x40-\xfe]|[\x81-\xfe][\x30-\x39][\x81-\xfe][\x30-\x39]
[color=Red]2007-03-12 21:35 補充[/color]
日文半形空格
\x20
SJIS全形空格
(?:\x81\x81)
SJIS全形數字
(?:\x82[\x4f-\x58])
SJIS全形大寫英文
(?:\x82[\x60-\x79])
SJIS全形小寫英文
(?:\x82[\x81-\x9a])
SJIS全形平假名
(?:\x82[\x9f-\xf1])
SJIS全形平假名擴展
(?:\x82[\x9f-\xf1]|\x81[\x4a\x4b\x54\x55])
SJIS全形片假名
(?:\x83[\x40-\x96])
SJIS全形片假名擴展
(?:\x83[\x40-\x96]|\x81[\x45\x5b\x52\x53])
EUC_JP全形空格
(?:\xa1\xa1)
EUC半形片假名
(?:\x8e[\xa6-\xdf])
——————————————————————————
下面是utf-8編碼的例子:
$str = "漢字";
if (preg_match("/^[\x{4e00}-\x{9fa5}]+$/u",$str)) {
print("該字元串全部是中文");
} else {
print("該字元串不全部是中文");
}
下面的例子包含gbk,gb2312的例子:
<?php
$action = trim($_GET['action']);
if($action == "sub")
{
$str = $_POST['dir'];
//if(!preg_match("/^[".chr(0xa1)."-".chr(0xff)."A-Za-z0-9_]+$/",$str)) //GB2312漢字字母數字下劃線正則表達式
if(!preg_match("/^[\x{4e00}-\x{9fa5}A-Za-z0-9_]+$/u",$str)) //UTF-8漢字字母數字下劃線正則表達式
{
echo "<font color=red>您輸入的[".$str."]含有違法字元</font>";
}
else
{
echo "<font color=green>您輸入的[".$str."]完全合法,通過!</font>";
}
}
?>
Ⅳ 超常用的PHP正則表達式收集整理
以下就是對超常用的PHP正則表達式進行的收集整理,為了方便大家更快更好的掌握php正則表達式。
一、表單驗證匹配
驗證賬號,字母開頭,允許
5-16
位元組,允許字母數字下劃線:^[a-zA-Z][a-zA-Z0-9_]{4,15}$
驗證賬號,不能為空,不能有空格,只能是英文字母:^\S+[a-z
A-Z]$
驗證賬號,不能有空格,不能非數字:^\d+$
驗證用戶密碼,以字母開頭,長度在
6-18
之間:^[a-zA-Z]\w{5,17}$
驗證是否含有
^%&',;=?$\
等字元:[^%&',;=?$\x22]+
匹配Email地址:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
匹配騰訊QQ號:[1-9][0-9]{4,}
匹配日期,只能是
2004-10-22
格式:^\d{4}\-\d{1,2}-\d{1,2}$
匹配國內電話號碼:^\d{3}-\d{8}|\d{4}-\d{7,8}$------------評註:匹配形式如010-12345678
或0571-12345678
或
0831-1234567
匹配中國郵政編碼:^[1-9]\d{5}(?!\d)$
匹配身份證:\d{14}(\d{4}|(\d{3}[xX])|\d{1})------------評註:中國的身份證為15
位或18
位
不能為空且二十位元組以上:^[\s|\S]{20,}$
二、字元匹配
匹配由
26
個英文字母組成的字元串:^[A-Za-z]+$
匹配由
26
個大寫英文字母組成的字元串:^[A-Z]+$
匹配由
26
個小寫英文字母組成的字元串:^[a-z]+$
匹配由數字和
26
個英文字母組成的字元串:^[A-Za-z0-9]+$
匹配由數字、26個英文字母或者下劃線組成的字元串:^\w+$
匹配空行:\n[\s|
]*\r
匹配任何內容:[\s\S]*
匹配中文字元:[\x80-\xff]+
或者
[\xa1-\xff]+
只能輸入漢字:^[\x80-\xff],{0,}$
匹配雙位元組字元(包括漢字在內):[^\x00-\xff]
三、匹配數字
只能輸入數字:^[0-9]*$
只能輸入n位的數字:^\d{n}$
只能輸入至少n位數字:^\d{n,}$
只能輸入m-n位的數字:^\d{m,n}$
匹配正整數:^[1-9]\d*$
匹配負整數:^-[1-9]\d*$
匹配整數:^-?[1-9]\d*$
匹配非負整數(正整數
+
0):^[1-9]\d*|0$
匹配非正整數(負整數
+
0):^-[1-9]\d*|0$
匹配正浮點數:^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$
匹配負浮點數:^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$
匹配浮點數:^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$
匹配非負浮點數(正浮點數
+
0):^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$
匹配非正浮點數(負浮點數
+
0):^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$
四、其他
匹配HTML標記的正則表達式(無法匹配嵌套標簽):<(\S*?)[^>]*>.*?</\1>|<.*?
/>
匹配網址
URL
:[a-zA-z]+://[^\s]*
匹配
IP
地址:((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)
匹配完整域名:[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\.?
提示
上述正則表達式通常都加了
^
與
$
來限定字元的起始和結束,如果需要匹配的內容包括在字元串當中,可能需要考慮去掉
^
和
$
限定符。
以上正則表達式僅供參考,使用時請檢驗後再使用,希望通過這些超常用的PHP正則表達式
Ⅵ PHP從入門到精通—正則表達式—初識正則表達式、正則表達式語法規則、相關函數、常見應用、用法自查表
初識正則表達式
正則表達式,一種用於匹配和處理文本的字元串描述工具,廣泛應用於Linux、Unix系統工具中,如Vi編輯器、Perl或PHP腳本語言以及Shell腳本等,展現出其強大的跨語言、跨系統應用能力。學習正則表達式,不僅能夠簡化文本處理任務,還能提高程序性能和代碼效率。
正則表達式語法規則
行定位符(^和$)
通過行定位符(^和$),正則表達式支持定位功能,分別用於匹配字元串的開始和結束位置,精準控制字元在字元串中的定位。
單詞定界符(\b和\B)
\b用於匹配單詞邊界,而\B匹配非單詞邊界,幫助識別文本中的單詞分界,增強正則表達式的精確度。
字元類
通過方括弧表達式([]),正則表達式實現對特定字元集的匹配,如忽略大小寫的字元匹配,提升文本處理的靈活性。
選擇字元(|)
|表示「或」操作,允許匹配多個選項之一,簡化復雜匹配條件的表達。
連字元(-)
連字元簡化表達式,匹配連續字元,如數字、字母等,提高匹配效率。
反義字元
使用^表示反義字元,匹配不在指定范圍內的任意字元,優化文本匹配邏輯。
限定符
限定符指定匹配組件的重復次數,實現精確的文本匹配,提高正則表達式的應用范圍。
點字元(.)
.匹配除換行符外的任意單個字元,用於靈活匹配文本中的字元。
轉義字元
轉義字元將特殊字元轉換為普通字元,如\.匹配字元.,確保正則表達式中的特殊字元正常生效。
反斜線(\)
\在正則表達式中用於轉義特殊字元,同時具有其他功能,如後接字母表示更多功能。
括弧字元
括弧用於改變優先順序,組合小原子為大原子,整合匹配項,簡化匹配邏輯。
反向引用
反向引用允許匹配連續出現的字元串或字母,通過表達式的「記憶」功能實現,提高匹配效率。
正則表達式相關函數
preg_match()函數
用於對指定字元串進行匹配,返回匹配結果或0(未匹配)。
preg_match_all()函數
全局匹配功能,從頭到尾搜索匹配結果,直至獲取所有相匹配的內容。
preg_replace()函數
實現字元串搜索和替換,功能強大,適用於復雜文本處理。
preg_split()函數
完成字元串的復雜分割操作,如同時分割多個字元。
preg_grep()函數
匹配數組中的元素,篩選出符合正則表達式模式的單元。
正則表達式常見應用
手機號碼和郵箱驗證
編寫正則表達式匹配規范格式的手機號碼和郵箱,確保數據輸入的准確性。
驗證網址URL合法性
構建正則表達式匹配合法的URL結構,確保網路資源的有效訪問。
正則表達式用法自查表
總結正則表達式的用法,提供方便快捷的學習參考,幫助用戶掌握正則表達式的書寫規則。
總結:學習正則表達式能夠有效提升文本處理效率,通過掌握其基本概念、語法規則以及常見應用,用戶能夠靈活運用正則表達式解決實際問題,提高程序開發和文本處理的能力。
Ⅶ PHP甯哥敤姝e垯琛ㄨ揪寮忔眹鎬
1銆乗w灝辨槸鍖歸厤瀛楁瘝鎴栨暟瀛楁垨涓嬪垝綰挎垨奼夊瓧錛+鍒欎笌*宸涓嶅氾紝鍖哄埆鏄+鍖呮嫭閲嶅0嬈★紝鑰*灝卞彲浠ャ=灝眜shi鍖歸厤=鍙蜂袱涓鏂滄潬鍒欒〃紺烘e垯琛ㄨ揪寮忕殑鍒嗙晫銆
2銆佹e垯琛ㄨ揪寮忕殑闄愬畾絎︽湁錛歍hinkPHP鐨勮嚜鍔ㄩ獙璇佹満鍒舵槸涓轟簡榪涜岃〃鍗曟暟鎹楠岃瘉錛岄獙璇佸彲浠ユ敮鎸乫unction銆乧allback銆乧onfirm銆乪qual銆乽nique鍜宺egex錛岃繖閲岃佽茬殑鏄浣跨敤姝e垯琛ㄨ揪寮忚繘琛岄獙璇併傜壒孌婂瓧絎﹁稿氬厓瀛楃﹁佹眰鍦ㄨ瘯鍥懼尮閰嶅畠浠鏃剁壒鍒瀵瑰緟銆
3銆乛/錛焄a-zA-Z0-9=錛歖*$錛乗鏄瀵筽hp涓鍗曞紩鍙風殑杞涔夈傛垨鑰呰繕鏈夋洿綆鍗曠殑錛乛/錛焄a-z0-9=錛歖*$錛乮i琛ㄧず蹇界暐澶у皬鍐欍傛ā寮忓垎闅旂﹀氨鏄涓轟簡鍖哄垎琛ㄨ揪寮忓拰鍍廼榪欐牱鐨勬ā寮忎慨楗扮﹁岃捐$殑銆
Ⅷ 求php正則表達式 要求匹配 純英文字元串#純數字(位數不限), 謝謝
正則為:/^[a-z0-9#]*$/
檢測代碼如下:
$str='####1414adsad';
if(preg_match("/^[a-z0-9#]*$/",$str))
{
echo"驗證成功";
}
else
{
echo"驗證失敗";
}
3. 可以改變$str的值來檢測,該正則是否正確
Ⅸ php中正則表達式的/^[1-9][0-9]*$/是什麼意思呢
第一位只能匹配1-9的九個數字,從第二位開始只能匹配數字,總的來說就是匹配所有正整數