php教程的正則表達式完全手冊
前言
正則表達式是煩瑣的,但是強大的,學會之後的應用會讓你除了提高效率外,會給你帶來絕對的成就感。只要認真去閱讀這些資料,加上應用的時候進行一定的參考,掌握正則表達式不是問題。
索引
1._引子
2._正則表達式的歷史
3._正則表達式定義
3.1_普通字符
3.2_非打印字符
3.3_特殊字符
3.4_限定符
3.5_定位符
3.6_選擇
3.7_後向引用
4._各種操作符的運算優先級
5._全部符號解釋
6._部分例子
7._正則表達式匹配規則
7.1_基本模式匹配
7.2_字符簇
7.3_確定重復出現
1. 引子
目前,正則表達式已經在很多軟件中得到廣泛的應用,包括*nix(linux, unix等),hp等操作系統,php,c#,java等開發環境,以及很多的應用軟件中,都可以看到正則表達式的影子。
正則表達式的使用,可以通過簡單的辦法來實現強大的功能。為了簡單有效而又不失強大,造成了正則表達式代碼的難度較大,學習起來也不是很容易,所以需要付出一些努力才行,入門之後參照一定的參考,使用起來還是比較簡單有效的。
例子: ^.+@.+..+$
這樣的代碼曾經多次把我自己給嚇退過。可能很多人也是被這樣的代碼給嚇跑的吧。繼續閱讀本文將讓你也可以自由應用這樣的代碼。
注意:這裡的第7部分跟前面的內容看起來似乎有些重復,目的是把前面表格裡的部分重新描述了一次,目的是讓這些內容更容易理解。
2. 正則表達式的歷史
正則表達式的“祖先”可以一直上溯至對人類神經系統如何工作的早期研究。warren mcculloch 和 walter pitts 這兩位神經生理學家研究出一種數學方式來描述這些神經網絡。
1956 年, 一位叫 stephen kleene 的數學家在 mcculloch 和 pitts 早期工作的基礎上,發表了一篇標題為“神經網事件的表示法”的論文,引入了正則表達式的概念。正則表達式就是用來描述他稱為“正則集的代數”的表達式,因此采用“正則表達式”這個術語。
隨後,發現可以將這一工作應用於使用 ken thomps教程on 的計算搜索算法的一些早期研究,ken thompson 是 unix 的主要發明人。正則表達式的第一個實用應用程序就是 unix 中的 qed 編輯器。
如他們所說,剩下的就是眾所周知的歷史了。從那時起直至現在正則表達式都是基於文本的編輯器和搜索工具中的一個重要部分。
3. 正則表達式定義
正則表達式(regular expression)描述了一種字符串匹配的模式,可以用來檢查一個串是否含有某種子串、將匹配的子串做替換或者從某個串中取出符合某個條件的子串等。
列目錄時, dir *.txt或ls *.txt中的*.txt就不是一個正則表達式,因為這裡*與正則式的*的含義是不同的。
正則表達式是由普通字符(例如字符 a 到 z)以及特殊字符(稱為元字符)組成的文字模式。正則表達式作為一個模板,將某個字符模式與所搜索的字符串進行匹配。 1 2 3 4 5