本文目錄一覽:
- 1、超常用的PHP正則表達式收集整理
- 2、PHP的正則表達式中使用中文(並匹配中文)的問題,原串為UTF8
- 3、PHP正則表達式中怎麼匹配漢字啊 – 技術問答
- 4、php怎麼將中文利用正則表達式匹配出來
- 5、php中如何用正則表達式匹配中文字符呢?
超常用的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的正則表達式中使用中文(並匹配中文)的問題,原串為UTF8
?php
$str = “中國勢力是(煙消雲散、再轉在、匣介)中國、類別置頂帖(來哦見好就收)、炒肉可示、需要城”;
$preg2 = “/中國/sim” ;
preg_match_all($preg2, $str, $strResult, PREG_PATTERN_ORDER);
print_r($strResult);
?
我的PHP文件是UTF-8編碼,不知道你的$str是從哪裡得到的呢?像上面一樣,我直接給$str賦值,這樣使用 /中國/sim 這個表達式沒有任何問題,會不會是你$str字符串的編碼與頁面編碼不一致呢?
PHP正則表達式中怎麼匹配漢字啊 – 技術問答
匹配中文字符的正則表達式:
[\\u4e00-\\u9fa5]匹配雙字節字符(包括漢字在內):[^\\x00-\\xff]應用:計算字符串的長度(一個雙字節字符長度計2,ASCII字符計1)String.prototype.len=function(){return
this.replace([^\\x00-\\xff]/g,\”aa\”).length;}匹配空行的正則表達式:\\n[\\s|
]*\\r匹配HTML標記的正則表達式:/.*|/匹配首尾空格的正則表達式:(^\\s*)|(\\s*$)
php怎麼將中文利用正則表達式匹配出來
正則匹配中文漢字根據頁面編碼不同而略有區別:
GBK/GB2312編碼:[x80-xff]+ 或 [xa1-xff]+
UTF-8編碼:[x{4e00}-x{9fa5}]+/u
$str = “賬單123”;
//GBK/GB2312使用:
preg_match_all(“/[\x80-\xff]+/”, $str, $chinese);
//UTF-8 使用:
//preg_match_all(“/[\x{4e00}-\x{9fa5}]+/u”, $str, $chinese);
print_r($chinese);
閣下所說的亂碼應該就是編碼沒弄對了
php中如何用正則表達式匹配中文字符呢?
php中匹配一個或多個中文字符(包含簡體和繁體中文字符)的正則表達式如下:/[[b]\x{4e00}-\x{9fa5}]+/注意:php中正則表達式的16進制是以
\x
開頭的。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/190325.html