在PHP中有兩套正則表達(dá)式函數(shù)庫(kù),兩者功能相似,只是執(zhí)行效率略有差異: 一套是由PCRE(Perl Compatible Regular Expression)庫(kù)提供的。使用“preg_”為前綴命名的函數(shù); 一套由POSIX(Portable Operating System In " /> 国产在线精品一区在线观看麻豆,日韩一区电影,美日韩黄色大片

色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

PHP學(xué)習(xí)正則表達(dá)式 課件第1/2頁(yè)

正則表達(dá)式

php中有兩套正則表達(dá)式函數(shù)庫(kù),兩者功能相似,只是執(zhí)行效率略有差異:
一套是由PCRE(Perl Compatible Regular Expression)庫(kù)提供的。使用“preg_”為前綴命名的函數(shù);
一套由POSIX(Portable Operating System Interface of Unix )擴(kuò)展提供的(php默認(rèn))。使用以“ereg_”為前綴命名的函數(shù);
php中,正則表達(dá)式有三個(gè)作用:
   匹配,也常常用于從字符串中析取信息。
   用新文本代替匹配文本。
   將一個(gè)字符串拆分為一組更小的信息塊。

一個(gè)正則表達(dá)式中至少包含一個(gè)原子。
原子(普通字符,如英文字符)
元字符(有特殊功用的字符)
模式修正字符(對(duì)正則表達(dá)式語(yǔ)義的修正)


      原子(Atom)
單個(gè)字符、數(shù)字,如a~z,A~Z,0~9。
模式單元,如(ABC)可以理解為由多個(gè)原子組成的大的原子。
原子表,如 [ABC]。
重新使用的模式單元,如://1
普通轉(zhuǎn)義字符,如:/d, /D, /w
轉(zhuǎn)義元字符,如:/*,/.

      POSIX正則表達(dá)式
POSIX正則表達(dá)式全稱(chēng)為Portable Operating System Interface of Unix,意為UNIX可移植操作系實(shí)現(xiàn)接口。

構(gòu)造POSIX正則表達(dá)式的方法和創(chuàng)建數(shù)學(xué)表達(dá)式的方法一樣,也就是用多種元字符與操作符將小的表達(dá)式結(jié)合在一起來(lái)創(chuàng)建更大的表達(dá)式。


      元字符(Meta-character)
元字符是用于構(gòu)造規(guī)則表達(dá)式的具有特殊含義的字符。如果要在正則表達(dá)式中包含元字符本身,必須在其前加上”/”進(jìn)行轉(zhuǎn)義 
元字符      說(shuō)明
*        0次、1次或多次匹配其前的原子
+        1次或多次匹配其前的原子
?        0次或1次匹配其前的原子
|        匹配兩個(gè)或多個(gè)選擇  列如 [1-9]|[a-b]|[A-Z] 與其中任何匹配為ture
^        匹配字符串串首的原子  例如 abscd===^afdgfgf 相匹配
$        匹配字符串串尾的原子  例如 dasdsv===v$
[]        匹配方括號(hào)中的任一原子  例如 s===[dsadas]
[^]      匹配除方括號(hào)中的原子外的任何字符 例如 aaaaa===[dddd]
{m}      表示其前原子恰好出現(xiàn)m次  
{m,n}      表示其前原子至少出現(xiàn)m次,至少出現(xiàn)n次(n>m)
{m,}      表示其前原子出現(xiàn)不少于m次
()        整體表示一個(gè)原子
.        匹配除換行之外的任何一個(gè)字符

^ $  這兩個(gè)原字符在一起稱(chēng)為定界
abd===^abc$  只有這樣才匹配

    模式匹配的順序 
順序  元字符    說(shuō)明
     1    ()         模式單元  
     2    ?* +{}      重復(fù)匹配
     3     ^$        邊界限制
     4              |        模式選擇

    POSIX正則表達(dá)式函數(shù)
ereg()和eregi()
ereg_replace()和eregi_replace()
split()和spliti()

ereg()和eregi()ereg()字符串匹配函數(shù),eregi()是ereg()函數(shù)的忽略大小的版本
語(yǔ)法格式:if (!ereg('^[^./][^/]*$', $userfile))//不匹配格式輸出die
  {
    die('這是一個(gè)非法的文件名!');
  }

ereg_replace()和eregi_replace(忽略大小寫(xiě))替換
string eregi_replace (“正則表達(dá)式”,“目標(biāo)替換字符”,“替換目標(biāo)”)
語(yǔ)法格式:$string = "This is a test";
  echo str_replace(" is", " was", $string);
  echo ereg_replace("( )is", "http://1was", $string);//1 為繼承第一個(gè)整體
  echo ereg_replace("(( )is)", "http://2was", $string);//2繼承第二個(gè)整體

split()和spliti(忽略大小寫(xiě))用正則表達(dá)式將字符串分割到數(shù)組中
list:給數(shù)組中的值賦予一些變量
語(yǔ)法格式:$date = "04/30/1973";
  list($month, $day, $year) = split ('[/.-]', $date);//列出三個(gè)變數(shù)對(duì)應(yīng)格式//以什么形式拆分 拆分誰(shuí)
  echo "Month: $month; Day: $day; Year: $year<br />/n";
  輸出結(jié)果Month: 04; Day: 30; Year: 1973

php技術(shù)PHP學(xué)習(xí)正則表達(dá)式 課件第1/2頁(yè),轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 磐安县| 阿勒泰市| 贞丰县| 茶陵县| 邻水| 屏南县| 宜宾市| 饶平县| 凤城市| 全南县| 玛曲县| 黄大仙区| 霍林郭勒市| 启东市| 桦南县| 郓城县| 金溪县| 虎林市| 桓台县| 乌兰浩特市| 托克托县| 壤塘县| 罗山县| 石嘴山市| 南召县| 区。| 霍州市| 保靖县| 铜川市| 太和县| 高青县| 弋阳县| 博罗县| 长阳| 岳阳县| 滁州市| 依兰县| 珠海市| 耿马| 平阴县| 汕尾市|