到目前為止,已經提到了許多建立RE的元素,當然還有許多元素沒有提到,下表整理了一些沒提到的元素,在最左邊的字段的數字是說明在Expresso中的例子。
# 語法 說明
\a Bell 字符
\b 通常是指字的邊界,在字符組里所代表的就是backspace
\t Tab
34 \r Carriage return
\v Vertical Tab
\f From feed
35 \n New line
? \e Escape
36 \nnn ASCII八位碼為nnn的字符
37 \xnn 十六位碼為nn的字符
38 \unnnn Unicode為nnnn的字符
39 \cN Control N字符,舉例來說Ctrl-M是\cM
40 \A 字符串的開始(和^相似,但不需籍由multiline選項)
41 \Z 字符串的結尾
\z 字符串的結尾
42 \G 目前查找的開始
43 \p{name} Unicode 字符組名稱為name的字符,比如說\p{Lowercase_Letter} 所指的就是小寫字
(?>exp) Greedy次描述,又稱之為non-backtracking次描述。這只符合一次且不采backtracking。
44 (?<x>-<y>exp)
or (?-<y>exp) 平衡群組。雖復雜但好用。它讓已命名的抓取群組可以在堆棧中操作使用。(小弟對這個也是不太懂哩)
45 (?im-nsx:exp) 為次描述exp更改RE選項,比如(?-i:Elvis)就是把Elvis大乎略大小寫的選項關掉
46 (?im-nsx) 為之后的群組更改RE選項。
(?(exp)yes|no) 次描述exp視為zero-width positive lookahead。若此時有符合,則yes次描述為下一個符合標的,若否,則no 次描述為下一個符合標的。
(?(exp)yes) 和上述相同但無no次描述
(?(name)yes|no) 若name群組為有效群組名稱,則yes次描述為下一個符合標的,若否,則no 次描述為下一個符合標的。
47 (?(name)yes) 和上述相同但無no次描述
結論
經過了一連串的例子,及Expresso的幫忙,相信各位大大對RE有個基本的了解,網絡上當然有許多有關于RE的文章,如果各位大大有興趣http://www.codeproject.com 還有許多關于RE的相關文章。若大大對書有興趣的話,Jeffrey Friedl的Mastering Regular Expressions很多大大都有推(小弟還沒拜讀)。希望籍由這樣的心得報告,能讓對RE有興趣的大大能縮短學習曲線,當然這是小弟第一次接觸RE,若文章中有什么錯誤或說明的不好的地方,可要請各位大大體諒,并請各位大大將需要修正的地方mail給小弟,小弟會非常感謝各位大大。