Regexp 是什麼東東?
Regular Expression (簡稱 regexp 或 RE) 是什麼? 有人直譯為「常規表示式」; 筆者偏好意譯, 姑且叫它「字串樣版」。 Regexp 的主要功能是搜尋字串/代換字串:
- 英文的 "顏色" 一字, 有兩種拼法: color 及 colour。 用 regexp 表達, 可以一石兩鳥: colou?r 其中的 "?" 表示 "前面的字元可有可無"
- 想要找 "port" 與 "ports", 但又不希望找到 "export", "portable", "important" 等等一大堆不相關的單字, 該怎麼辦? 用 \bports?\b 這裡的 "\b" 表示 "(文數字 vs. 標點符號等等其他字元 之間的) 邊界 (boundary); 旁邊不可有其他文數字" 所謂文數字, 就是英文字母, 數字, 及底線 "_"。
- 如何在一大片文字, 銀行帳號, 信用卡號... 當中, 找出看來像是行動電話號碼的字串, 例如 0928123456 或是 0929-987-654 之類的? \b09[0-9][0-9]-?[0-9][0-9][0-9]-?[0-9][0-9][0-9]\b 其中的 "[0-9]" 其實是 "[0123456789]" 的簡寫, 意思是 "任何一個數字字元"
恭喜! 您已經學會 regexp 特殊符號當中的 " ? [...] \b " 等三個。 regexp 總共大約有三四十個符號; 不過其中大約有一半較少用; 只要熟用兩打, 就已經可以變很多魔術了。 Regexp 是一種低成本, 高報酬的學習投資。 耐心把這份講義看一半, 絕對比花時間學花俏的圖形介面軟體更值回票價。
- 本頁最新版網址: http://people.ofset.org/~ckhung/b/re/intro.php; 您所看到的版本: February 19 2007 15:15:35.
- 作者: 朝陽科技大學 資訊管理系 洪朝貴
- 寶貝你我的地球, 請 減少列印, 多用背面, 丟棄時做垃圾分類。
- 本文件以 Creative Commons Attribution-ShareAlike License 或以 Free Document License 方式公開授權大眾自由複製/修改/散佈。
![[rss feed 圖案]](/~ckhung/i/rss.png)
![[帶頭升級 Office 2007? 別當害群之馬]](/~ckhung/i/n7/no-office2007.png)
![[(力求維持) 符合 xhtml 1.0]](/~ckhung/i/vxhtml10.png)
