資源描述:
《PHP入門培訓(xùn)教程PHP培訓(xùn)教程PHP基礎(chǔ)教程16PHP正則》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、回顧字符串的定義都有哪三種方式,簡(jiǎn)單區(qū)別?常用的字符串的輸出函數(shù)都有哪些?常用的字符串的比較函數(shù)都有哪些?常用的字符串的格式化函數(shù)都有哪些?預(yù)習(xí)檢查使用正則表達(dá)式可以實(shí)現(xiàn)字符串的哪些操作?正則表達(dá)式中的元字符都有哪些?與Perl兼容的正則表達(dá)式都有哪些操作函數(shù)?本章任務(wù)1.正則表達(dá)式簡(jiǎn)介2.正則表達(dá)式的語法規(guī)則3.與Perl兼容的正則表達(dá)式函數(shù)1.正則表達(dá)式介紹正則表達(dá)式簡(jiǎn)介:正則表達(dá)式是用于描述字符排列和匹配模式的一種語法規(guī)則。它主要用于字符串的模式分割、匹配、查找及替換操作。到目前為止,我們前面所用過
2、的精確(文本)匹配也是一種正則表達(dá)式。在PHP中,正則表達(dá)式一般是由正規(guī)字符和一些特殊字符(類似于通配符)聯(lián)合構(gòu)成的一個(gè)文本模式的程序性描述。PHP中,正則表達(dá)式有三個(gè)作用:匹配,也常常用于從字符串中析取信息。用新文本代替匹配文本。將一個(gè)字符串拆分為一組更小的信息塊。一個(gè)正則表達(dá)式中至少包含一個(gè)原子。在PHP中有兩套正則表達(dá)式函數(shù)庫,兩者功能相似,只是執(zhí)行效率略有差異:一套是由PCRE(PerlCompatibleRegularExpression)庫提供的。使用“preg_”為前綴命名的函數(shù);一套由PO
3、SIX(PortableOperatingSystemInterfaceofUnix)擴(kuò)展提供的。使用以“ereg_”為前綴命名的函數(shù);PCRE來源于Perl語言,而Perl是對(duì)字符串操作功能最強(qiáng)大的語言之一,PHP的最初版本就是由Perl開發(fā)的產(chǎn)品。PCRE語法支持更多特性,比POSIX語法更強(qiáng)大。舉例:想一想這兩個(gè)正則表達(dá)式做什么用?/^-?d+$
4、^-?0[xX][da-fA-F]+$//^[0-9a-zA-Z_-]+@[0-9a-zA-Z_-]+(.[0-9a-zA-Z_-]+){0,3}$
5、/與Perl語言兼容的正則表達(dá)式處理函數(shù)函數(shù)名功能描述preg_match()進(jìn)行正則表達(dá)式匹配preg_match_all()進(jìn)行全局正則表達(dá)式匹配preg_replace()執(zhí)行正則表達(dá)式的搜索和替換preg_split()用正則表達(dá)式分割字符串preg_grep()返回與模式匹配的數(shù)組單元preg_replace_callback用回調(diào)函數(shù)執(zhí)行正則表達(dá)式的搜索和替換2.正則表達(dá)式的語法規(guī)則2.1定界符2.2原子2.3元字符2.4模式修正符Perl兼容正則表達(dá)式正則表達(dá)式作為一個(gè)匹配的模版,是由原子(
6、普通字符,例如字符a到z)、特殊字符(元字符,例如*、+和?等)、以及模式修正符三部分組成的文字模式。一個(gè)最簡(jiǎn)單正則表達(dá)式至少包含一個(gè)原子。將下面的正則表達(dá)式拆分如下:'/7、\t
8、\r
9、)?href=["]?(.+?)["]?(?:(?:
10、\t
11、\r
12、)+.*?)?>(.+?)
/sim'定界符:兩個(gè)斜線”/”。原子用到了等普通字符和tr等轉(zhuǎn)義字符元字符使用了[]()
13、.?*+等具有特殊含義的字符用到了模式修正符是在定界符
14、最后一個(gè)斜線之后的三個(gè)字符:sim2.1定界符在程序語言中,使用與Perl兼容的正則表達(dá)式,通常都需要將模式表達(dá)式放入定界符之間,如“/”。作為定界符常使用反斜線“/”,如“/apple/”。用戶只要把需要匹配的模式內(nèi)容放入定界符之間即可。作為定界的字符也不僅僅局限于“/”。除了字母、數(shù)字和斜線“”以外的任何字符都可以作為定界符,像‘#’、’
15、’、’!’等都可以的。//--使用反斜線作為定界符合法
16、(d{3})-d+
17、Sm--使用豎線”
18、”作為定界符合法!^(?i)php[34]!--
19、使用豎線”!”作為定界符合法{^s+(s+)?$}--使用豎線”}”作為定界符合法/href=‘(.*)’--非法定界符,缺少結(jié)束定界符1-d3-d3-d4
20、--非法定界符,缺少其實(shí)定界符2.2原子原子是正則表達(dá)式的最基本的組成單元,而且在每個(gè)模式中最少要少包含一個(gè)原子。原子是由所有那些未顯示指定為元字符的打印和非打印字符組成,具體分為5類。1.普通字符作為原子:如a~z、A~Z、0~9等2.一些特殊字符和轉(zhuǎn)義后元字符作為原子:所有標(biāo)點(diǎn)符號(hào),但語句特殊意義的符號(hào)需要轉(zhuǎn)義后才可作為原子,如:”
21、’*+?.等3.一些非打印字符作為原子:如:frtvcx4.使用“通用字符類型”作為原子:如:dDwWsS。5.自定義原子表([])作為原子:如:’/[apj]sp/’’/[^apj]sp/’正則表達(dá)式中常用的非打印字符原子字符含義描述cx匹配由x指明的控制字符。如cM匹配一個(gè)Control-M或回車符。x的值必須為A~Z或a~z之一。f匹配一個(gè)換頁符。等價(jià)于x0c或cL匹配一個(gè)