PHP匹配連續(xù)的數(shù)字或字母的正則表達(dá)式
正則表達(dá)式的寫法規(guī)則:"/規(guī)則需要寫在2個(gè)斜杠中間/"。
-
(. :小數(shù)點(diǎn))用于匹配除換行符之外的所有字符。
-
(\s:反斜杠小寫s)用于匹配單個(gè)空格符,包括tab鍵和換行符;
-
(\S:反斜杠大寫S)用于匹配除單個(gè)空格符之外的所有字符;
-
(\d:反斜杠d)用于匹配從0到9的數(shù)字;也可以這樣寫:[0-9]
-
(\w:反斜杠小寫w)用于匹配字母,數(shù)字或下劃線字符;
-
(\W:反斜杠大寫W)用于匹配所有與\w不匹配的字符;
元字符包括: +, *,?
元字符理解起來容易混淆,所以我在后面做了代碼結(jié)果截圖
“+”元字符規(guī)定其前導(dǎo)字符必須連續(xù)出現(xiàn)一次或多次
= 比如/es+/
與“tesseessssseast12354haeasashaha”字符串相匹配,首先要與第一個(gè)字母e匹配,然后匹配s,s必須出現(xiàn)一次或多次,請(qǐng)看實(shí)例截圖。
“*”元字符規(guī)定其前導(dǎo)字符必須出現(xiàn)零次或連續(xù)多次
= 比如/es*/
與“tesseessssseast12354haeasashaha”字符串相匹配,首先與第一個(gè)字母e匹配,后面的s出現(xiàn)零次或者連續(xù)出現(xiàn),看實(shí)例。
“?”元字符規(guī)定其前導(dǎo)對(duì)象必須連續(xù)出現(xiàn)零次或一次
= 比如/es?/
與“tesseessssseast12354haeasashaha”字符串相匹配,首先與第一個(gè)字母e匹配,后面的s出現(xiàn)零次或者最多出現(xiàn)一次(就是最后一個(gè)字母s不重復(fù)出現(xiàn))。
示例代碼:
$str = "tesseessssseast12354haeasashaha";
echo "=====".$str."
";
echo "/es+/:".preg_replace("/es+/","-\\0-",$str)."
";
echo "/es*/:".preg_replace("/es*/","-\\0-",$str)."
";
echo "/es?/:".preg_replace("/es?/","-\\0-",$str)."
";
?>
執(zhí)行結(jié)果截圖:
另外如果覺得元字符“+*?”比較難理解可以用這種{ }方法代替:
比如es*我們可以寫成es{0,},而es+我們可以寫成es{1,},es?可以寫成es{0,1},注意:當(dāng)不確定次數(shù)的時(shí)候就不用寫(也不用空格)。
當(dāng)然我們要指定出現(xiàn)多少次的可以寫成這樣:es{3}表示s出現(xiàn)3次
舉一反三:
比如要替換連續(xù)多個(gè)空格為一個(gè)空格,我可以這樣寫:preg_replace("/\s+/"," ",$str);
比如要找出字符串中的數(shù)字(整數(shù)):preg_replace("/\d+/", "(\\0)", $str); \\0是表示符合規(guī)則的字符串值
比如要找出字符串中的帶小數(shù)點(diǎn)的數(shù)字:preg_replace("/\d+\.\d+/", "(\\0)", $str); //這里的“\.”表示輸出小數(shù)點(diǎn)
找出由字母組成的字符串:preg_replace("/[a-zA-Z]+/", "(\\0)", $str)
找出由(字母、數(shù)字混合)組成的字符串:preg_replace("/([a-zA-Z]|\d)+/", "(\\0)", $str)
正則表達(dá)式中“或”運(yùn)算,使用 “ | ”
例如上面的例子:找出由(字母或數(shù)字)混合組成的字符串([a-zA-Z]|\d) 也可以這樣寫([a-zA-Z]|[0-9])
“^”出現(xiàn)在 “[ ]”內(nèi)時(shí)就被視做否定運(yùn)算符;[^0-9]表示除了數(shù)字之外的任何字符。
而當(dāng)“^”位于“[ ]”之外,或沒有“[ ]”時(shí),則應(yīng)當(dāng)被視做定位符。
定位符的意思就是比如:“^The”:開頭一定要有”The”字符串;類似的:“en$”:$符號(hào)表示必須是en結(jié)尾。
其實(shí)認(rèn)真看一遍就會(huì)發(fā)現(xiàn)正則表達(dá)式還是挺簡單的,除非是我寫的教程真的有問題。
相關(guān)文章
AJAX應(yīng)用中必須要掌握的重點(diǎn)知識(shí)(分享)
下面小編就為大家?guī)硪黄狝JAX應(yīng)用中必須要掌握的重點(diǎn)知識(shí)(分享)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-08-08ajax中指定innerHTML時(shí)如何應(yīng)用其中的SCRIPT的研究
ajax中指定innerHTML時(shí)如何應(yīng)用其中的SCRIPT的研究...2007-03-03淺談Ajax相關(guān)及其優(yōu)缺點(diǎn)
最近在學(xué)習(xí)有關(guān) AJAX 的知識(shí),上網(wǎng)查閱了一些有關(guān) AJAX 的資料,主要是有關(guān) AJAX的技術(shù)簡介及其優(yōu)缺點(diǎn)等。在這里,我想對(duì)我收集的資料做一些小小的總結(jié),大部分資料都來自網(wǎng)上,本人在此只做分類總結(jié),希望對(duì)和我一樣正在學(xué)習(xí) AJAX 的朋友有一定的幫助。2015-06-06ajax的get請(qǐng)求時(shí)緩存處理解決方法
這篇文章主要介紹了ajax的get請(qǐng)求時(shí)緩存處理解決方法,詳細(xì)分析了常見的四種解決方法,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-02-02配合AJAX天氣預(yù)報(bào)的webService 之a(chǎn)sp
配合AJAX天氣預(yù)報(bào)的webService 之a(chǎn)sp...2007-01-01ajax AjaxDownloader.js[modified]
漏洞版本老啦,實(shí)用性不夠了,just have fun!2008-07-07