發表文章

目前顯示的是 10月, 2017的文章

[Regular Expression]正規表達式教學,使用狀態機輔助說明-基礎篇

圖片
感謝設計師 Elim 大大幫忙 # ** 目錄** ##**一、前言** ##**二、極度懶人包** ##**三、Regular Expression 介紹** ##**四、基礎語法介紹** ##**五、練習用習題** ##**六、資料來源** # 一、前言 最近被要求幫同事上課(OS: 壓力山大QQQ),為了不讓自己上課沒材料,同時讓部落格有新文章之外,其實也沒啥目的,主要就是把最近學習到關於 Regular Expression(正規表達式)的內容好好記錄下來,在學習過程中發現這玩意兒,其實不只是工程師的工具,也可以是一般人都能以掌握且在日常生活中使用到的,雖然我不曉得什麼時候用得到,但確實 Regular Expression 會出現在許多地方,為此盡可能簡化入手難度而寫出這系列教學,比較屬於工程師的內容還是有,沒相關知識者不去看也沒差XD。 #  二、極度懶人包 下方為沒有時間,習慣於一邊吃飯一邊看影片的人們使用,關於這邊文章中所要提到的知識以及操作。 # 三、Regular Expression 介紹 ## 1.什麼是 Regular Expression? Regular Expression(正規表達式)又可簡寫為 Regex,他不是新的東西,而是大家早已會的技能,他是語言,也可以說是程式語言,也有人會說他是強大的工具,這些都是對的,只是大家又不同的角度去看待 Regex,而有不同的心得,Regex 在數學上是狀態機,電腦實作中是採用樹狀結構方式實現,也因為他是程式語言,就代表是可以被維護,被實作,被重寫的,因此每次在寫新的 Regex 同時,用對待其他語言的方式對待他,就不會覺得他是麻煩而且難以學習的新事物了。Regex 是各位早已熟悉的東西,早已熟悉的存在。 ``` 狀態機補充 狀態機是表示有限個狀態以及在這些狀態之間的轉移和動作等行為的數學模型。Regex 中 為判斷接收到的事件是否滿足,如果滿足則移動到下一個狀態,直到整個狀態機滿足為止。 ``` ``` 樹狀結構補充 舉例來說這組 Regex 規則這樣寫 /(ab+c)* + aca/,在樹狀結構表示如下圖所示 ![Tree](https://imgur.com/ZCpuizd.png) 當中優先度為 | 大於 +*? 大於