正則匹配php-九游会j9娱乐平台
1. php正則表達式匹配一段中文,中間有換行,空白,應該怎麼寫
有多種處理方法:
1、使用[ss]匹配任意字元,而不是使用「.」
2、使用s單行修飾模式,例:$pattern='#abc.*?def#s';//能匹配abc換行def
3、使用s*匹配換行和空格,php里s能匹配空白字元,含換行
php里的中文使用[x7f-xff]表示,因此,使用正則:
$pattern='#[x7f-xff] (?:s*[x7f-xff] )*#';即可
2. 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進行匹配。
(2)正則匹配php擴展閱讀:
正則表達式的特點是:
1. 靈活性、邏輯性和功能性非常強;
2. 可以迅速地用極簡單的方式達到字元串的復雜控制。
3. 對於剛接觸的人來說,比較晦澀難懂。
由於正則表達式主要應用對象是文本,因此它在各種文本編輯器場合都有應用,小到著名編輯器editplus,大到microsoft word、visual studio等大型編輯器,都可以使用正則表達式來處理文本內容。
3. php常用正則表達式匯總
1、w就是匹配字母或數字或下劃線或漢字, 則與*差不多,區別是 包括重復0次,而*就可以。=就ushi匹配=號兩個斜杠則表示正則表達式的分界。
2、正則表達式的限定符有:thinkphp的自動驗證機制是為了進行表單數據驗證,驗證可以支持function、callback、confirm、equal、unique和regex,這里要講的是使用正則表達式進行驗證。特殊字元許多元字元要求在試圖匹配它們時特別對待。
3、^/?[a-za-z0-9=:]*$!是對php中單引號的轉義。或者還有更簡單的!^/?[a-z0-9=:]*$!ii表示忽略大小寫。模式分隔符就是為了區分表達式和像i這樣的模式修飾符而設計的。
4. 超常用的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*?)[^>]*>.*?|<.*?
/>
匹配網址
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正則表達式
5. 怎麼用php正則獲得a標簽內的文字啊
php中正則匹配只要使用這兩個函數:
preg_match_all
preg_match
這里使用preg_match_all,代碼如下:
$subject='abc測試';//假設這是需要匹配的字元串
$pattern='/]*>(.*)/';//這是匹配的正則表達式
preg_match_all($pattern,$subject,$matches);//開始匹配,該函數會把匹配結果放入$matches數組中
echo"";
print_r($matches);
/**
結果是:
array
(
[0]=>array
(
[0]=>abc測試
)
[1]=>array
(
[0]=>abc測試
)
)
*/6. 求php正則表達式 要求匹配 純英文字元串#純數字(位數不限), 謝謝
正則為:/^[a-z0-9#]*$/
檢測代碼如下:
$str='####1414adsad';
if(preg_match("/^[a-z0-9#]*$/",$str))
{
echo"驗證成功";
}
else
{
echo"驗證失敗";
}3. 可以改變$str的值來檢測,該正則是否正確
7. php 正則表達式 url匹配
1,preg_grep(pattern,array);它的返回值是一個新數組,新數組的元素是成功匹配的元素。