[發明專利]一種YAML和下推自動機的正則表達式擴展方法和系統在審
| 申請號: | 202210439527.9 | 申請日: | 2022-04-25 |
| 公開(公告)號: | CN114840723A | 公開(公告)日: | 2022-08-02 |
| 發明(設計)人: | 顧士豪 | 申請(專利權)人: | 杭州笨馬網絡技術有限公司 |
| 主分類號: | G06F16/903 | 分類號: | G06F16/903;G06F16/901 |
| 代理公司: | 杭州裕陽聯合專利代理有限公司 33289 | 代理人: | 張解翠 |
| 地址: | 310000 浙江省杭州市余杭*** | 國省代碼: | 浙江;33 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 yaml 下推自動機 正則 表達式 擴展 方法 系統 | ||
本發明公開了一種YAML和下推自動機的正則表達式擴展方法和系統,所述方法包括:在YAML中輸入預制命令和節點,構建YAML正則匹配樹,根據所述生成正則匹配器;所述節點包括變量定義節點、變量引用節點和變量表達節點,將所述變量定義節點和變量引用節點建立鏈接;通過所述正則匹配器遞歸匹配預制的節點,根據所述節點類型執行預制命令;構建下推匹配邏輯,若當前節點匹配成功,根據下推匹配邏輯和預制命令執行當前節點的和當前子節點的匹配狀態維護;讀取所有匹配成功的變量表達節點內容,根據所述內容從語言自身的正則表達式庫調用對應的正則表達式。
技術領域
本發明涉及計算機代碼正則表達技術領域,特別涉及一種YAML和下推自動機的正則表達式擴展方法和系統。
背景技術
目前傳統的正則表達式有兩個標準,除了POSIX標準之外,還有一個Perl標準,其中POSIX標準較為經典,也是其他多種編程語言的內置實現,而Perl標準對于基礎的正則表達式進行了拓展,增加了模式遞歸匹配等功能。但是無論是POSIX標準的正則表達式還是PCRE標準,都無法解決字符串中相互引用,相互關聯包含等模式的匹配問題,如果希望借用此類正則表達式匹配某種結構化的編程語言,也很復雜。另外,傳統的正則表達式也存在難以閱讀理解,難以維護的問題。基于這個背景,本發明提出了一種模塊化,語義化的基于正則表達式進行匹配的方案。
發明內容
本發明其中一個發明目的提供了一種YAML和下推自動機的正則表達式擴展方法和系統,所述方法和系統通過在YAML中寫入正則表達式,通過所述正則表達式組建一個正則匹配樹,通過所述正則匹配樹進行復雜正則表達式的定義和匹配。
本發明另一個發明目的提供了一種YAML和下推自動機的正則表達式擴展方法和系統,所述方法和系統通過提供模塊化、語義化的正則表達式,可以使得本發明的正則表達式不僅匹配單一的字符串模式,還可以匹配到多種字符串的包含、遞歸和循環關系,通過結構化的正則表達式解決字符串的相互引用和相互關聯的問題。
本發明另一個發明目的提供了一種YAML和下推自動機的正則表達式擴展方法和系統,所述方法和系統通過引入下推自動機來處理正則表達式在匹配過程中的狀態維護。
本發明另一個發明目的提供了一種YAML和下推自動機的正則表達式擴展方法和系統,所述方法和系統將正則表達式納入到YAML結構文檔中,通過YAML結構文檔的上下級關系來描述各個正則表達式的各個規則模塊,可以通過自定義的命令字符設計和引用,并設置條件選擇和“非”邏輯,極大地擴展了正則表達式的語言能力。
為了實現至少一個上述發明目的,本發明進一步提供一種YAML和下推自動機的正則表達式擴展方法,所述方法包括:
在YAML中輸入預制命令和節點,構建YAML正則匹配樹,根據所述正則匹配樹正則匹配樹生成正則匹配器;
所述節點包括變量定義節點、變量引用節點和變量表達節點,將所述變量定義節點和變量引用節點建立鏈接;
通過所述正則匹配器遞歸匹配預制的節點,根據所述節點類型執行預制命令;
構建下推匹配邏輯,若當前節點匹配成功,根據下推匹配邏輯和預制命令執行當前節點的和當前節點對應子節點的匹配狀態維護;
讀取所有匹配成功的變量表達節點內容,根據所述內容從語言自身的正則表達式庫調用對應的正則表達式。
根據本發明其中一個較佳實施例,所述方法包括:所述方法包括:采用正則編譯器從YAML正則匹配樹中讀取模塊化正則表達式數據,并將所述模塊化的正則表達式數據存儲到內存中轉化為對應的正則匹配模型,進一步利用正則匹配器讀取文本和所述正則匹配模型進行匹配。
根據本發明另一個較佳實施例,所述預制的節點還包括邏輯非節點,其中所述非邏輯節點配置非邏輯,在所述非邏輯節點獲取正則表達式匹配結果,若匹配結果為不匹配,則執行非邏輯節點下層節點的匹配。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于杭州笨馬網絡技術有限公司,未經杭州笨馬網絡技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202210439527.9/2.html,轉載請聲明來源鉆瓜專利網。





