Board logo

標題: Regexp 可以應用在什麼領域? [打印本頁]

作者: sunnyso    時間: 2013-8-22 10:26     標題: Regexp 可以應用在什麼領域?

以前save下來學習用的.

忘記出處了, 原作者請見諒. 歡迎各位知道出處的補完. 以示對原作者的尊重


任何用得上電腦的領域。 只要

1.
你想處理的資料是某種文字格式 (.txt, .html, .csv, ...), 或者很容易與某種文字格式互轉而不失真 (例如 .sxw); 抱歉, 封閉的 .doc 格式 並不適用;

2.
你想做的事情是有規律, 機械化, 重複繁瑣的動作

聽起來跟 「需要寫程式解決的問題」 很類似嗎? 沒錯, 有很多時候, 沒有學過 regexp 的人, 真的會著手寫一支程式來解決他的問題; 但是會 regexp 的人, 則會下一個稍長, 含有 regexp 的指令來解決同一個問題, 連文字檔案編輯器都不用打開, 就已經完成相同的任務。 且讓我舉幾個例子:

a.
數個班級的同學混合進行專題分組, 老師傳來的成績依組別區分; 但系辦公室要將成績改成依班級區分, 以便傳給教務處。

b.
經常上某個固定的網頁查看某類商品當天的促銷狀況, 想自動化。

c.
將一份文件當中的美式日期 (月/日/年) 改成澳洲日期 (日/月年)

d.
將數千個照片檔按照檔名分別放到不同的目錄底下。

e.
寫一封信給過去幾個月內曾經與我通過三封以上 e-mail 的朋友。
作者: sunnyso    時間: 2013-8-22 10:27

Regexp 可以拿來做這麼多神奇的事, 學起來卻遠比寫程式簡單許多! 它不是一種程式語言, 也不是一套應用軟體, 而是一套約莫兩打特殊符號的規則 (其實只要學一打就很夠用了)。 從廿年前的 vi 編輯器, 到現在的 java 語言, 在 許多不同應用領域的軟體上 都可以使用上這套規則。 只要有國中英文程度, 與幾小時的學習投資, 就可以學會 regexp, 這並不是資訊科系的專利。 另一方面, 它的知識價值卻比任何視窗軟體 (微軟視窗或 Linux X 視窗) 更長久, 因為它不會退流行, 而且你可以拿它來與其他知識發揮 組合相乘 的效果。 筆者特別呼籲 擅長分析語句文法的英文老師, 與喜愛分析組合勝過死記的數理老師, 花一點點工夫認識 regexp。 Regexp 絕對不比英文的複合句, 數學的因式分解, 物理的運動學更困難。 請您給我幾個小時, 讓我證明給您看, 這個, 而不是如何拉 MS Word 的選單, 才具有長遠的學習投資價值, 才應該是資訊教育的主體。
作者: sunnyso    時間: 2013-8-23 11:54

出處
http://www.cyut.edu.tw/~ckhung/b/re/

感謝p212找到出處




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)