日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

PHP與正則表達(dá)系列之一: PHP中的正則表達(dá)式_PHP教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:PHP讀取RSS feed源代碼(帶注釋,可讀取多個源)
因為網(wǎng)站需要讀取不同來源的rss feed,寫了一個php程序來循環(huán)讀取rss feed,為了方便閱讀及了解程序?qū)崿F(xiàn)過程,加上了注釋,和大家共同學(xué)習(xí)。而助易網(wǎng)的rss讀取就是在這個程序的基礎(chǔ)上稍做改造而

今天起,會開始弄一個PHP教程系列文章. 主要是針對正則表達(dá)式的。

大概的內(nèi)容排序是這樣安排的:

1. PHP 中的正則表達(dá)式

2. 八個實用的PHP正則表達(dá)式

3. 如何書寫更易閱讀的PHP正則表達(dá)式

4. 半小時精通正則表達(dá)式

5. 正則在文章采集系統(tǒng)中的應(yīng)用及常見問題答疑

6. ...更多策劃中

文章內(nèi)容來源方面,有本站舊文重新整理而來,也有翻譯英文文獻(xiàn)而來(感謝在加拿大的!oEL同學(xué)),還有些是個人心得。

個人能力有限,肯定有一些錯誤,發(fā)現(xiàn)的朋友請給予提醒以及時更正. 不至誤導(dǎo)新手. 如果文章能給大家一些參考,就很滿足了。

PHP與正則表達(dá)系列之: PHP 中的正則表達(dá)式

正則表達(dá)式簡介及正則表達(dá)式在PHP中的作用

正則表達(dá)式是一種表示規(guī)則的途經(jīng),在 PHP 中利用這些規(guī)則可以讓你靈活變通地匹配、檢驗、替換以及字符串。本文涉及到 PCRE 的基礎(chǔ),以及如何使用 preg_match(),preg_replace(),and preg_split() 函數(shù)。

接下來就讓我們從實例循序漸進(jìn)地開始學(xué)習(xí)如何使用這些函數(shù)。

規(guī)則匹配 preg_match

利用 preg_match(),我們可以完成字符串的規(guī)則匹配。如果找到一個匹配,preg_match() 函數(shù)返回 1,否則返回 0。還有一個可選的第三參數(shù)可以讓你把匹配的部分存在一個數(shù)組中。在驗證數(shù)據(jù)時這個功能可以變得非常有用。


$string = "football";
if (preg_match('/foo/', $string)) {
// 匹配正確
}

上面的例子將成功匹配,因為單詞 football 里面包含 foo�,F(xiàn)在我們來試一個更復(fù)雜的,例如驗證一個 Email 地址。


$string = "[email protected]";
if (preg_match(
'/^[^0-9][a-zA-Z0-9_] ([.][a-zA-Z0-9_] )*[@][a-zA-Z0-9_] ([.][a-zA-Z0-9_] )*[.][a-zA-Z]{2,4}$/',
$string)) {
// 驗證Email地址
}

這個例子將驗證出此 Email 地址為正確格式�,F(xiàn)在讓我們來看看這段正則表達(dá)式所代表的各種規(guī)則。

PCRE 顧名思義,與在 Perl 中的正則表達(dá)式有相同的語法,所以每段正則表達(dá)式必須要有一對定界符。我們一般使用 / 為定界符。

開頭的 ^ 和結(jié)尾的 $ 讓PHP從字符串開頭檢查到結(jié)尾。假使沒有 $,程序仍會匹配到 Email 的末尾。

[ 和 ] 被用來限制許可輸入類型。例如 a-z 允許所有的小寫字母,A-Z 允許所有的大寫字母,0-9 所有數(shù)字,等等,以及更多其他類型。

{ 和 } 被用來限制期望的字符數(shù)。例如 {2,4} 表示字符串的每一節(jié)可以有 2-4 字符長度,像是 .com.cn 或 .info。在這里, "." 并不算一個字符,因為 {2,4} 之前定義的許可輸入類型只有大小寫字母,故此段只匹配大小寫字母

( 和 ) 被用來合并小節(jié),并定義字符串中必須存在的字符。(a|b|c) 能夠匹配 a 或 b 或 c。

(.) 將匹配所有字符,而 [.] 只匹配 "." 本身。

要使用一些符號本身,必須在前增加一個 。這些字符有: ( ) [ ] . * ? ^ | $

規(guī)則替換 preg_replace

preg_replace 允許你替換字符串中匹配到你定義的正則表達(dá)式。一個簡單的注釋移除功能:

preg_replace('[(/*) . (*/)]', '', $val);

這段代碼可以移除在 PHP 和 CSS 中使用 /* 注釋 */ 格式的多多行注釋。其中的三個參數(shù)分別為正則表達(dá)式,要替換成的字符串和要替換的目標(biāo)字符串(這里要做移除功能,所以是個空白字符串 -> '')。如果你想匹配次級規(guī)則,可以使用 $0 代表全部匹配,$1、$2 等,以此類推代表分別的次級規(guī)則。

規(guī)則分割preg_split

preg_split 可以將整段字符串按匹配到的正則表達(dá)式分割成 1、2或更多字符的多段。比如獲取標(biāo)簽,無論是用空格還是逗號分隔的:


$tags = preg_split('/[,]/', 'my,tags,unevenly,spaced');
print_r($tags);

正則表達(dá)式是一個很實用的技巧,讓你可以專注于所期望得到的內(nèi)容。

但有時候一段正則表達(dá)式并不能讓你如愿以償?shù)玫筋A(yù)期的結(jié)果是件很煩人的事,所以我將在本系列的第二篇文章附上一些簡單的語法指南希望能夠幫到大家。

附:PCRE 語法指南

/ 定界符
^ 字符串頭
$ 字符串尾
[a-z] 所有小寫字母
[A-Z] 所有大寫字母
[0-9] 所有數(shù)字
? 零或一個緊接前的字符
* 零或多個緊接前的字符
一或多個緊接前的字符
{4} 4個緊接前的字符
{4,8} 4-8個緊接前的字符
. 任意字符
(red|green|blue) Red 或 green 或 blue(紅 或 綠 或 藍(lán))
s 空格

特殊字符(需要在前加 )

( ) [ ] . * ? ^ | $

分享:PHP開發(fā)大型項目的方法:OOP思想
面向?qū)ο缶幊痰母拍睿? 不同的作者之間說法可能不一樣,但是一個OOP語言必須有以下幾方面: 抽象數(shù)據(jù)類型和信息封裝、繼承、多態(tài) 在PHP中是通過類來完成封裝的: 代碼:

來源:模板無憂//所屬分類:PHP教程/更新時間:2008-08-22
相關(guān)PHP教程