欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
正則表達式之POSIX正則表達式語(yǔ)法
在更新日志之前,我要說(shuō)聲抱歉,由于之前幾天準備面試東奔西跑,然后得閑又復習計算機網(wǎng)絡(luò )、數據庫、操作系統、java、C還有數據結構等一些之前學(xué)過(guò)的課程知識,加上在PHP文件中解析XML方面又遇到了瓶頸,就一直沒(méi)有更新博客。不過(guò)我現在想通了,我覺(jué)得不可以因為它我搞不懂就一直卡在那兒,我可以越過(guò)它繼續向前,等到某日,說(shuō)不定再回首就發(fā)現這個(gè)問(wèn)題不是問(wèn)題了。所以這節我們將正式開(kāi)始學(xué)習正則表達式。
由于在此之前我從來(lái)沒(méi)有接觸過(guò)正則表達式,而在PHP中正則表達式又是非常非常重要的,所以我將會(huì )花較多的精力來(lái)掌握正則表達式,所以我也會(huì )分成較多的章節來(lái)展開(kāi)從正則表達式的語(yǔ)法到函數,還有就是它們內容也會(huì )比較細,不會(huì )像之前的那么粗暴。
正則表達式是對字符串操作的一種邏輯公式,就是實(shí)現定義好的一些特定字符及這些特定字符的組合,組成一個(gè)“規則字符串”,用來(lái)表達對字符串的一種過(guò)濾邏輯。例如Email、電話(huà)、密碼和生日之類(lèi)的數據都有特定格式,這個(gè)時(shí)候就可以使用正則表達式驗證數據是否有效。
PHP支持兩種類(lèi)型的正則表達式:POSIX類(lèi)型Perl類(lèi)型。下面是POSIX類(lèi)型的正則表達式語(yǔ)法:
一、POSIX正則表達式語(yǔ)法
POSIX正則表達式的結構和一般的數學(xué)表達式類(lèi)似,有多個(gè)操作符(元素)組合在一起構成一個(gè)更復雜的表達式。這種組合不僅可以找到或者匹配表達式(如某個(gè)單詞或數字),還可以找到許多語(yǔ)義不同但語(yǔ)法相似的字符串(如HTML標記)。
POSIX支持以下三種語(yǔ)法來(lái)定義正則表達式,分別是中括號、量詞和預定義字符。
1、中括號([])
POSIX正則表達式的中括號([])表示在一定的范圍內查找字符,可以在中括號內設置要查找的字符序列。例如,[abc]表示匹配在這3個(gè)字符之間的字符串。
可以在中括號內使用短橫杠連接兩個(gè)字符來(lái)表示一個(gè)連續范圍。下面列出了正則表達式常用的字符范圍:
常用形式 說(shuō)明
[0-9] 匹配任何從0到9之間的十進(jìn)制數字
[a-z] 匹配任何從小寫(xiě)a到z之間的字符
[A-Z] 匹配任何從大寫(xiě)A到Z之間的字符
[A-Za-z] 匹配任何從大寫(xiě)A到小寫(xiě)z之間的字符
2、特殊字符
在中括號中指定字符范圍時(shí)有一個(gè)很明顯的局限性。比如要判斷某個(gè)字符串是否為18位的數字,就需要“[0-90-90-9……]”這樣重復18次,所以,POSIX正則表達式中定義了一些特殊字符和表達式,用于簡(jiǎn)化類(lèi)似復雜情況下的正則表達式寫(xiě)法,如下所示:
特殊字符
常用形式 說(shuō)明
p+ 匹配任何一個(gè)至少包含p的字符串
p* 匹配任何包含0個(gè)或多個(gè)p的字符串
p? 匹配任何包含0個(gè)或1個(gè)p的字符串
p{2} 匹配任何包含2個(gè)p序列的字符串
p{2,3} 匹配任何包含2個(gè)或3個(gè)p序列的字符串
p{2.} 匹配任何至少包含兩個(gè)p序列的字符串
p$ 匹配任何以p結尾的字符串
^p 匹配任何以p開(kāi)頭的字符串
[^a-zA-Z] 匹配任何不包含從a到z和從A到Z的字符串
p-p 匹配任何包含字符p、接下來(lái)是任何字符串、在接下來(lái)又是p的字符串
^.{2}$ 匹配任何只包含兩個(gè)字符的字符串
(.*) 匹配任何被包圍的字符串
p(hp) 匹配任何包含一個(gè)p,后面是0個(gè)或多個(gè)hp的字符串
(a|b) 匹配任何包含a或者b的字符串
注意^符號在中括號之外表示字符串的開(kāi)頭,
比如^h可以匹配hi,但是不能匹配the。
注意當^符號在中括號內表示取反,“非”或“排除”的意思,常用于否定某些字符。
比如^[0-9][0-9]表示第一個(gè)字符不是數字,第二位數是數字。因此@2及Y3都是符合匹配的,但14及2W就不能被匹配了。
下面列出了^符號用于排除字符的常規用法。
# [^0-9]: 匹配除了數字以外的所有字符。
# [^a-z]: 匹配除了小寫(xiě)字母以外的所有字符。
# [^A-Z]: 匹配除了大寫(xiě)字母以外的所有字符。
# [^\\\/\^]: 匹配除了“\”、“/”和“^”以外的所有字符。
# [^\'\']: 匹配除了雙引號和單引號以外的所有字符。
3、預定義字符
在POSIX正則表達式中還可以使用一些預定義的字符表示范圍。預定義字符可以指定整個(gè)字符范圍,例如字母或整數集。下面列出了常用的預定義字符。 
預定義字符
字符 描述 擴展
[:alnum:] 字母和數字字符 [0-9a-zA-Z]
[:alpha:] 字母字符(字母) [a-zA-Z]
[:ascii:] 7位ASCII [\x01-\x7F]
[:blank:] 水平空白符(空格、制表符) [\t]
[:cntrl:] 控制字符 [\x01-\x1F]
[:digit:] 數字 [0-9]
[:lower:] 小寫(xiě)字母 [a-z]
[:print:] 可打印字符(原形類(lèi)家空格和制表符) [\t\x20z-\xFF]
[:punct:] 任意標點(diǎn)符號,如句號(.)和分號(;) [-!'#$%&'()*+,./:;<=>?@[\\\]^_'{|}~]
[:space:] 空白(換行、回車(chē)、制表符、空格、垂直制表符 [\n\r\t\x0B]
[:upper:] 大寫(xiě)字母 [A-Z]
[:xdigit:] 十六進(jìn)制數字 [0-9a-fA-F]
每一個(gè)預定義字符都可以被用于替代一類(lèi)字符。例如查找任一個(gè)小寫(xiě)字母或者一個(gè)數字,可以使用下面的正則表達式:
[ [ : lower: ] [ : digit: ] ]
但是,不能把一個(gè)預定義字符當做一個(gè)范圍的終點(diǎn)使用。例如,下面的表達式是錯誤的:
ereg (' [0-[:alnum:] ] ' , '234');
至于ereg()函數,將會(huì )在下節《POSIX正則表達式函數》詳細展開(kāi)。
寫(xiě)在后面:本來(lái)正則表達式是想以一篇日志來(lái)講解的,但是覺(jué)得那樣的話(huà)還是篇幅太長(cháng)了,而且知識點(diǎn)都聚在一起比較籠統,所以就決定把它拆分成一個(gè)小節一個(gè)小節去掌握。這樣一來(lái),知識點(diǎn)一目了然,也較有利于記憶。
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
查找和替換:正則表達式
正則表達式語(yǔ)法
Java 正則表達式 ~ 反向引用 1 (作者:梨多情)
正則表達式參考手冊__Mini版
EmEditor與正則表達式
【易POST】易語(yǔ)言“正則表達式”教程
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久