如何理解php的正則表達(dá)式,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。
創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),湖濱企業(yè)網(wǎng)站建設(shè),湖濱品牌網(wǎng)站建設(shè),網(wǎng)站定制,湖濱網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷(xiāo),網(wǎng)絡(luò)優(yōu)化,湖濱網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專(zhuān)業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。\d : 數(shù)字。 \D : 除了數(shù)字。
\w : 數(shù)字,字母,下劃線。\W : 除了數(shù)字,字母,下劃線。
\s : 空白符 。 \S : 除了空白符 。
. :除了換行以外的所有字符
* : 匹配前面的內(nèi)容出現(xiàn) 0 次及以上。
? :匹配前面的內(nèi)容出現(xiàn) 0 次或 1 次。
+ : 出現(xiàn)一次或多次。
^ : 必須以它開(kāi)頭。
$ : 必須以它結(jié)尾。
{n} : 恰巧出現(xiàn) n 次。
{n,} : 大于等于 n 次。
{n,m} : 大于等于 n, 小于等于 m.
[] : 是一個(gè)集合,匹配中括號(hào)中的任意一個(gè)字符,如:[abc]即為匹配a或b或者c。
() : 后項(xiàng)引用或者是當(dāng)做一個(gè)整體。
[^]:取反。
| : 或者
[-] : 代表一個(gè)范圍,如[0-9],匹配即為 0123456789
i:不區(qū)分大小寫(xiě)。
m:將字符串通過(guò)分隔符進(jìn)行分割,將字符串中的每一行分別進(jìn)行匹配。
e: 將匹配出來(lái)的內(nèi)容做一些php語(yǔ)法上的處理。
s: 修正 "." 的換行。
U: 取消貪婪模式。
x: 忽略模式中的空白符。
A: 必須以這個(gè)模式開(kāi)頭。
D: 修正 "$" 對(duì) "\n" 的忽略。
u: 做 utf-8 中文匹配的時(shí)候使用。
g:該表達(dá)式可以進(jìn)行全局匹配。
現(xiàn)在需要正則驗(yàn)證一個(gè)input框,我想輸入的是非整數(shù)就自動(dòng)變成空值。
正則如下;
#不加入/g,則只返回第一個(gè)匹配,無(wú)論執(zhí)行多少次均是如此,如果加入g,則第一次執(zhí)行也返回第一個(gè)匹配,再執(zhí)行返回第二個(gè)匹配,依次類(lèi)推。#/[^0-9]/g,這個(gè)正則表達(dá)式的意思是全局匹配非數(shù)字類(lèi)型和非-的字符。/[^0-9|-]/g
匹配到該正則后,就將input的值置空即可。
如果想只去除掉b標(biāo)簽,只保留里面的字符串,這里就需要用到后項(xiàng)引用。怎么樣后項(xiàng)引用呢,就是將.* 括起來(lái),然后在匹配的時(shí)候,寫(xiě)上\1,\1 代表第一個(gè)括號(hào)里面匹配到的內(nèi)容,當(dāng)然為了防止 \ 將 1 轉(zhuǎn)義掉,所以我們使用\\1 .
我們這是想匹配到每一個(gè) b 標(biāo)簽,即abc和bcd,
//如果使用下面的正則來(lái)匹配的話,會(huì)匹配出abcbcd.$pattern='/.*<\/b>/';
所以此處我們要使用.*?來(lái)取消貪婪,?代表匹配前面的內(nèi)容 0 次或者 1次。
//正則表達(dá)式改為$pattern='/.*?/';//當(dāng)然取消貪婪還有一種寫(xiě)法:就是在后面加上一個(gè)U,即:$pattern='/.*/U';
但是切記不能 .*? 和 U 一起用。
$str = '中文';
a、使用utf-8匹配中文:
$pattern='/[\x{4e00}-\x{9fa5}]+/u';
b、使用GB2312匹配中文:
$pattern='/['.chr(0xb0).'-'.chr(0xf7).']['.chr(0xa1).'-'.chr(0xfe).']/';preg_match($pattern,$str,$match);
看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,的支持。