国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

正則表達式大全(regular expression)

2019-11-18 11:28:54
字體:
來源:轉載
供稿:網友

要害字: 正則表達式,Regular EXPRession

原著:笑臉

創作于:2004年05月03日
最后更新:2004年05月04日 21:12
版權聲明:使用創作公用版權協議

引用地址:<a href="http://oo8h.51.net/docs/regular_expression.htm">正則表達式(regular expression)</a>


前言

正則表達式是煩瑣的,但是強大的,學會之后的應用會讓你除了提高效率外,會給你帶來絕對的成就感。只要認真去閱讀這些資料,加上應用的時候進行一定的參考,把握正則表達式不是問題。

索引

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 Thompson 的計算搜索算法的一些早期研究,Ken Thompson 是 Unix 的主要發明人。正則表達式的第一個實用應用程序就是 Unix 中的 qed 編輯器。

  如他們所說,剩下的就是眾所周知的歷史了。從那時起直至現在正則表達式都是基于文本的編輯器和搜索工具中的一個重要部分。

 

3. 正則表達式定義

  正則表達式(regular expression)描述了一種字符串匹配的模式,可以用來檢查一個串是否含有某種子串、將匹配的子串做替換或者從某個串中取出符合某個條件的子串等。

  • 列目錄時, dir *.txt或ls *.txt中的*.txt就不是一個正則表達式,因為這里*與正則式的*的含義是不同的。

  正則表達式是由普通字符(例如字符 a 到 z)以及非凡字符(稱為元字符)組成的文字模式。正則表達式作為一個模板,將某個字符模式與所搜索的字符串進行匹配。

3.1 普通字符

  由所有那些未顯式指定為元字符的打印和非打印字符組成。這包括所有的大寫和小寫字母字符,所有數字,所有標點符號以及一些符號。

3.2 非打印字符

字符 含義 /cx 匹配由x指明的控制字符。例如, /cM 匹配一個 Control-M 或回車符。x 的值必須為 A-Z 或 a-z 之一。否則,將 c 視為一個原義的 'c' 字符。 /f 匹配一個換頁符。等價于 /x0c 和 /cL。 /n 匹配一個換行符。等價于 /x0a 和 /cJ。 /r 匹配一個回車符。等價于 /x0d 和 /cM。 /s 匹配任何空白字符,包括空格、制表符、換頁符等等。等價于 [ /f/n/r/t/v]。 /S 匹配任何非空白字符。等價于 [^ /f/n/r/t/v]。 /t 匹配一個制表符。等價于 /x09 和 /cI。 /v 匹配一個垂直制表符。等價于 /x0b 和 /cK。
 

3.3 非凡字符

  所謂非凡字符,就是一些有非凡含義的字符,如上面說的"*.txt"中的*,簡單的說就是表示任何字符串的意思。假如要查找文件名中有*的文件,則需要對*進行轉義,即在其前加一個/。ls /*.txt。正則表達式有以下非凡字符。



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阳曲县| 武陟县| 辽阳市| 荣昌县| 化隆| 温宿县| 道孚县| 台前县| 伊宁市| 辽中县| 崇阳县| 融水| 平顺县| 镇赉县| 余姚市| 卫辉市| 江永县| 兴安县| 武穴市| 舒城县| 巨野县| 山东省| 桐梓县| 盖州市| 睢宁县| 岗巴县| 海门市| 四会市| 彩票| 宣武区| 南城县| 长沙市| 谷城县| 翁源县| 黄骅市| 潼关县| 亳州市| 蒙山县| 滨州市| 广汉市| 怀集县|