regexp
regexp

不知道什麼是 Regexp

別說你懂爬蟲~~

帶你了解 Regexp 正則的強大文字處理功能

什麼是 正則表達式 ( Regexp ) ?

Regular Expression , 中文稱為正則表達式.  它的前世今生, 請看 WIKI  .  

為什麼要在這裏說明什麼是 Regexp 呢? 即使是很多的程式設計師, 對於正則的使用, 也未必清楚. 在大數據時代來源之前, 正則的使用, 耳熟能詳的, 就只是在 Word 或 Excel 中的搜尋及取代功能. 並沒有出色的表現. 但自從網站爬蟲興盛. 關於正則的使用範圍就變的更廣了. 除了 Perl, 在 Python 中也大量的使用.

在爬蟲 ( Crawling , spider )的世界, 需要到世界各地去抓取資料, 作為分析使用.  尤其大數據分析, 股票分析, 產業分析, 都在大量的進行文字的解析及探索. 你可以從中發掘 Patterns, Trends, 進而發現新的知識.  但如何抓取並分析這些資料呢? 正則表達式, 就是佔了極為重要的功能. 

好了. 知道了正則表達式的應用. 我們就先簡單的來概觀一下 Regular Expression 的內容.

正則表達式的基本功能

正則表達式, 基本上, 就是文字處理的強大工具. 事實上, 是強大, 但也很簡單的概含:
真正讓正則表達式強大的理由, 就是兩項理由:

1. 就是 Pattern 樣式的使用. 

2. 就是配合程式的自動化.

Regular expression 的架構

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.

在搜尋時, 當然得確定你要的目標是什麼樣子. 是單字? 字串? 段落, 還是整篇文章?

這個單元, 是正則表達式的核心之一. 將我們要搜尋的目標, 以樣式 (pattern) 形成一連串的組合, 在回傳後, 還能區分不同的目標群組. 透過這樣不同的組合, 會產生不同的變化.

因為字元的組合太多, 為了簡化的目的, 會以一些特殊的 “字元組合” 來代表常用的字元集合. 

正則表達式的基礎, 是一個字元一個字元處理的. 多個字元, 就透過量詞的關係來表示

因為正則表達式, 使用了非常多的特殊符號. 這些符號, 如果也是我們要搜尋的目標之一, 該如何使用?

AND, OR, ! 等關係運算的使用

配合你搜尋的對像(如文字段落, 整篇文章等) 的內容格式, 做成預先的格式設定

根據你使用的尋字元, 字串或是樣式格式, 以新的樣式格式來取代. 

Regular Expression 的線上/下使用環境

想學習, 當然一定要有參考書, 以及工具, 來學習及反覆驗證. 在此, 我列出了幾個好用的工具. 提供有興趣的人線上/線下使用.