yoav-lavi/melody:Melody是一種將正規表示式轉譯為DSL的工具
正規表示式非常強大,但很難讓人閱讀並進行推理。這是一種嘗試使正規表示式更具可讀性、可擴充套件性和可維護性的解決方案。
Melody 是一種語言,能夠 1-1 轉譯正規表示式,讓其更具可讀性和可維護性。維護和編輯您的表示式並將它們可靠地編譯成一致且有效的正規表示式。
當前目標是支援正規表示式的 JavaScript 實現。
Reddit網友意見:
類似像regexr.com、Regex101.com這樣的工具,可以向您展示正規表示式的每個部分的作用以及您可以在哪裡提供示例文字來測試它。
有人認為:在嘗試使用正規表示式做一些比實際可能更復雜的事情之後(花幾個小時讓它“完美”然後發現一個無法逾越的突破邊緣案例),儘管寫它們非常舒服,但我傾向於更多面向解析等複雜任務的 OO 解決方案。總是對正規表示式作為複雜問題的解決方案持懷疑態度。
正規表示式非常適合簡單的字串匹配/轉換,我的意思是更多的事情,比如人們嘗試在正規表示式中編寫解析器。
除了正規表示式,為了處理電話號碼,我強烈建議使用谷歌的 libphonenumber。有幾十種流行的程式語言的埠。它使驗證和規範來自世界各地的電話號碼變得非常容易。
我的男朋友知道我擅長正規表示式,所以他會把他需要做的事情發給我,我只會吐出一個正規表示式來滿足他的需要。然後我會嘗試向他解釋它是如何工作的,他的眼睛呆滯。
正規表示式的核心是一個有限狀態機,正規表示式中的每個字元都代表一個狀態轉換。如果您解析正規表示式的心智模型是這樣的,那麼實際上以這種方式理解狀態機要比讀起來像英語的東西更容易。
該工具提供了類似DSL的英文表達:
some of <word>; <space>; "1"; 2 of <digit>; |
但是非英文人很難讀懂,但是如果有正則基礎,下面正規表示式很容易明白:
/\w+\s1\d{2}/ |
相關文章
- Melody V1.52破解
- [譯]正規表示式匹配
- [譯] 即將到來的正規表示式新特性
- 常用正規表示式工具
- [轉]UltraEdit正規表示式
- python工具_正規表示式Python
- 正規表示式驗證工具
- rulex:Rust一種新的正規表示式語言Rust
- 常用有效的正規表示式【轉】
- 使用正規表示式將單詞首字母轉換為大寫
- 正規表示式 轉義字元字元
- c# 正規表示式(轉)C#
- 正規表示式語法(轉)
- 為什麼正規表示式的test()函式總是返回true函式
- 【正規表示式】常用的正規表示式(數字,漢字,字串,金額等的正規表示式)字串
- [譯]JavaScript的新功能將改變正規表示式的編寫方式JavaScript
- .NET開發之中的17種正規表示式小結(轉)
- 正規表示式需要轉義的字元字元
- 正規表示式中的特殊字元(轉)字元
- JavaScript中的正規表示式(2) (轉)JavaScript
- JavaScript中的正規表示式(1) (轉)JavaScript
- 正規表示式案例分析 (一)
- 正規表示式筆記(一)筆記
- 正規表示式基礎一
- 正規表示式
- 正規表示式使用詳解(轉)
- 正規表示式的多種實用總結
- 【譯】JS常用正規表示式備忘錄JS
- 編譯原理: Thompson 構造法(正規表示式 轉 NFA)編譯原理
- JavaScript的正規表示式JavaScript
- JS 的正規表示式JS
- 正規表示式需要轉義的特殊字元字元
- vi 中的正規表示式 (Regular Expression)(轉)Express
- 如何設計一門語言(十)——正規表示式與領域特定語言(DSL)
- 正規表示式將日期字串的中劃線替換為斜槓/字串
- JS常用正規表示式及驗證時間的正規表示式JS
- (一) 爬蟲教程 |正規表示式爬蟲
- Javascript正規表示式詳解(一)JavaScript