目前go官方提供regexp庫,來實現相關正則操作,但是在相容perl上面,相對較弱。
一些正則語法無法支援,比如: 正向前瞻/負向前瞻。
基於此,出於對正則能力上的需要,需要重新選擇正則庫。
1 github.com/glenn-brown/golang-pkg-pcre/src/pkg/pcre 2 github.com/dlclark/regexp2
其中pcre庫,會依賴到c庫,導致映象/部署上的一些行為。
另外一個庫,則是regexp2,它功能相對更多,同時不需要依賴到c庫,屬於自舉範疇吧···
git庫地址: dlclark/regexp2: A full-featured regex engine in pure Go based on the .NET engine (github.com)
如果說缺陷的話,正則的耗時問題,再有就是資料量過大的情況下,驗證規則過於複雜的情況下,均會導致regexp2在的耗時陡增,因為支援複雜正則執行的原因,耗時會同比增高。