當前位置: 妍妍網 > 碼農

6.8K Star神器!自動生成正規表式

2024-05-11碼農

微信公眾號:[開源日記],分享10k+Star的優質開源計畫

計畫介紹

Grex是一個由Rust語言開發的命令列工具和庫,根據使用者提供的測試用例生成正規表式。該工具可以作為庫或命令列工具使用,提供了豐富的功能和特性,使使用者能夠快速生成有效的正規表式。

功能特點

  • 1. 支持多種正規表式元素 :Grex支持字面量、字元類、常見字首和字尾檢測、重復子串轉換為 {min,max} 量詞表示、使用 | 運算子的替換、使用 ? 量詞的選項、轉義非ASCII字元等功能,使用者可以根據需要選擇不同元素來生成更精確的正規表式。

  • 2. 相容性和可延伸性 :Grex完全相容Unicode標準15.0版本,與regex crate 1.9.0及更高版本完全相容,正確處理由多個Unicode符號組成的圖形元素,具有良好的相容性和可延伸性。

  • 3. 友好的互動方式 :Grex提供從命令列或檔中讀取輸入字串的方式,使用者可以以多種方式輸入測試用例,同時透過可選的詳細模式生成更易讀的正規表式,提高互動視覺化效果。

  • 4. 可客製化選項 :使用者可以選擇大小寫敏感或不敏感匹配、捕獲組或非捕獲組等選項,根據具體需求對生成的正規表式進行客製化,增加靈活性和適應力。

  • 案例舉例

    $ grex a b c
    ^[a-c]$
    $ grex a c d e f
    ^[ac-f]$
    $ grex a b x de
    ^(?:de|[abx])$
    $ grex abc bc
    ^a?bc$
    $ grex a b bc
    ^(?:bc?|a)$
    $ grex [a-z]
    ^\[a\-z\]$
    $ grex -r b ba baa baaa
    ^b(?:a{1,3})?$
    $ grex -r b ba baa baaaa
    ^b(?:a{1,2}|a{4})?$
    $ grex y̆ a z
    ^(?:y̆|[az])$
    Note: 
    Grapheme y̆ consists of two Unicode symbols:
    U+0079 (Latin Small Letter Y)
    U+0306 (Combining Breve)
    $ grex "I ♥ cake""I ♥ cookies"
    ^I ♥ c(?:ookies|ake)$
    Note:
    Input containing blank space must be 
    surrounded by quotation marks.







    使用場景

    Grex在實際場景中具有廣泛的套用,特別適用於以下情況:

  • 快速生成復雜正規表式 :對於需要匹配特定模式的使用者輸入數據,無需手動編寫復雜的正規表式,Grex可以根據提供的測試用例快速生成適當的運算式,節省時間和精力。

  • 教學和學習用途 :作為學習正規表式的工具,Grex可以幫助初學者了解不同元素如何構成有效的運算式,提供了互動式的生成方式,有助於加深對正規表式的理解。

  • 自動化測試 :在開發和測試環境中,Grex可用於自動生成用於檢查和驗證輸入數據的正規表式,提高測試效率和覆蓋率,幫助發現潛在的問題或漏洞。

  • 開源地址:https://github.com/pemistahl/grex

    微信公眾號:[開源日記],分享10k+Star的優質開源計畫

    創作不易 分享 , , 在看 ,三連支持一波,感謝。↓↓↓

    近期熱文: