日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > PHP與正則表達系列之一: PHP中的正則表達式

PHP與正則表達系列之一: PHP中的正則表達式

來源:程序員人生   發布時間:2014-03-03 23:41:13 閱讀次數:2422次
今天起,會開始弄一個PHP教程系列文章. 主要是針對正則表達式的。

大概的內容排序是這樣安排的:

1. PHP 中的正則表達式

2. 八個實用的PHP正則表達式

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

4. 半小時精通正則表達式

5. 正則在文章采集系統中的應用及常見問題答疑

6. ...更多策劃中

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

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

PHP與正則表達系列之: PHP 中的正則表達式

正則表達式簡介及正則表達式在PHP中的作用

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

接下來就讓我們從實例循序漸進地開始學習如何使用這些函數。

規則匹配 preg_match

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


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


上面的例子將成功匹配,因為單詞 football 里面包含 foo。現在我們來試一個更復雜的,例如驗證一個 Email 地址。


$string = "first.last@domain.uno.dos";
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 地址為正確格式。現在讓我們來看看這段正則表達式所代表的各種規則。

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

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

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

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

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

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

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

規則替換 preg_replace

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

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

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

規則分割preg_split

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



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


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

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

附:PCRE 語法指南

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

特殊字符(需要在前加 )
( ) [ ] . * ? + ^ | $

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 操女人网站| 久久熟 | 日韩一区二区久久 | 麻豆成人在线观看 | 一区二区国产在线 | 免费毛片在线 | 色网网站 | www.国产高清| 亚洲一区二区三区日韩 | av在线播放免费 | 久久久久久国产精品 | 国产男女乱淫真高清视频免费 | 亚洲午夜免费视频 | 精品香蕉99久久久久网站 | 午夜在线视频 | av在线网址观看 | 久久精品成人一区二区三区蜜臀 | 国产在线精品一区二区在线播放 | 中文字幕精品一区久久久久 | 特级全黄一级毛片 | 国产精品久久久久久久久免费 | 亚洲欧美国产另类 | 国产精品一区二区在线看 | 欧美在线视频二区 | 国产尤物在线播放 | 国产精品免费福利 | 国产成人久久精品 | 欧美videosdesexo| 久久久高清 | 国产精品一区在线观看你懂的 | 国产伦精品一区二区三区免 | 国产精品久久999 | 久久亚洲精品视频 | 91精品福利 | 久久精品1 | 久久99精品久久久久久琪琪 | 久久国产精品免费 | 久久99精品久久久久久青青日本 | 国产乱码精品一区二区三区五月婷 | 91 中文字幕 | 亚洲精品久久久久中文字幕二区 |