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}/ |
相關文章
- [轉載] 正規表示式
- 常用正規表示式工具
- 常用有效的正規表示式【轉】
- 正規表示式(一)
- 正規表示式 轉義字元字元
- “正規表示式”應當稱為“規則表示式”
- rulex:Rust一種新的正規表示式語言Rust
- 正規表示式需要轉義的字元字元
- 編譯原理: Thompson 構造法(正規表示式 轉 NFA)編譯原理
- 什麼是正規表示式?
- 什麼是正規表示式
- 將錯就錯?正規表示式 [,-.]
- [譯]JavaScript的新功能將改變正規表示式的編寫方式JavaScript
- 正規表示式是如何運作的?
- 轉|正規表示式之匹配中文
- 正規表示式-問號的四種用法
- 正規表示式最常用的幾種情形
- 【正規表示式】常用的正規表示式(數字,漢字,字串,金額等的正規表示式)字串
- 正規表示式的一些規則
- 正規表示式
- 正規表示式.
- 匹配迅雷種子連結的正規表示式
- 轉義正規表示式中特殊字元字元
- 【譯】JS常用正規表示式備忘錄JS
- Linux 的正規表示式Linux
- 正規表示式test() 總是返回true
- JS常用正規表示式及驗證時間的正規表示式JS
- (一) 爬蟲教程 |正規表示式爬蟲
- 【轉載】正規表示式解釋說明
- 在 Shell 中轉換 Python 正規表示式Python
- 文字處理工具之grup && 正規表示式
- php –正規表示式PHP
- 【Linux】正規表示式Linux
- 【JavaScript】正規表示式JavaScript
- URL正規表示式
- 正規表示式 split()
- 初探正規表示式
- 正規表示式 test()