許多人很害怕 Regular Expressions, 除了它的確不好學之外, 主要是因為大家普遍不太了解它能拿來做什麼。所以我在這裡要陸續舉出一些實際上的應用範例, 向讀者們示範 Regular Expression 在實際生活中能幫我們解決什麼問題。依照我的慣例, 當我想到什麼, 就會在原來的文章裡直接修改, 不另做通知, 也不會再寫另一篇新的文章
2015/5/24
2014/7/6
[Regex] .Net 4.5 中新增的 Regex 建構式參數
我曾在「[Regex] 值得注意的 Regular Expression 樣式的潛在風險」一文中介紹過, Regex 樣式中若含有無意或惡意的某些寫法時, 可能會造成形同 DoS (Denial of Service, 阻斷式攻擊) 的問題, 使得伺服器陷入無窮無盡的無意義運算中。事實上, 在撰寫正規運算式的樣式時, 的確很容易寫出有問題的樣式, 很多時候甚至不是刻意造成的; 愈是初學者, 愈容易造成這個問題
2010/9/8
[Regex] 值得注意的 Regular Expression 樣式的潛在風險
Regex 本身已經十分複雜, 但不知道大家有沒有想過, 它的解析引擎和處理機制又是如何實作的呢? 一般來講, Regular Expression 的解析引擎可以分為三種, 一種叫做 DFA (Deterministic Finite Automation, 決定性有限自動機制), 另一種叫做 NFA (Nondeterministic Finite Automation, 非決定性有限自動機制), 還有一種叫做 POSIX NFA。.Net 採用了傳統的 NFA 引擎, 使得它既能兼顧速度與功能, 但缺點就是由於傳統 NFA 只接受它找到的第一個相符比對,它也可能讓其它比對無法被找到 (POSIX NFA 雖然可以找到, 但速度緩慢)
2010/3/2
[Regex] 進階群組建構
Regular Expression (規則運算式, 以下簡稱為 Regex) 實在不是一個易懂的課題; 但是, 如果我們要在一大堆文字裡面挑出部份具有特定規則的隻字片語, Regex 恐怕是我們唯一能用得上的工具
2009/9/22
[Regex] Regular Expression 詳論
ASP.NET 的初學者, 一旦學到了 Validator 控制項, 就會踫到 Regular Expression 這個主題。Regular Expression 指的是一種檢驗文數字的表示式, 早在 ASP.NET 出現之前就已存在, 而且也不是 ASP.NET 所專有。大多數主流程式語言 (包括 Java、JavaScript、Ruby、PHP 等) 都可以透過 Regular Expression 來驗證輸入。
不過, 除非你早就了解 Regular Expression 是什麼, 否則當你一開始遇上它時, 可能會被搞得一頭霧水
[Regex] 超讚!免費的 Regular Expression 輔助編輯與測試工具
對於想要開發 Regular Expression 的人, Expresso 是一個很好用的工具,不但可以即時製作 Regular Expression 字串,而且可以立即驗證、測試。你可以在 Ultrapico 網站 下載最新版本(如該頁所顯示的, 你必須先在 註冊頁中註冊,才能取得一個免費的註冊碼, 否則只能試用 60 天)。