理解Go 正規表示式引擎中的否定集
在Go 中,標準函式庫的正規表示式引擎(RE2)缺乏對環視的支持,包括負前瞻運算子? !如提供的正規表示式中所使用的:
^(.*\.(?!(htm|html|class|js)$))?[^.]
此正規表示式旨在匹配不以特定檔案副檔名結尾的字串。然而,在 Go 中,由於缺乏環視支持,它無法按預期運行。
替代解決方案
除了依賴否定集之外,還有替代方案在Go 中處理這種情況的解決方案:
直接驗證檔案副檔名:
將否定集替換為直接檢查所需的檔案副檔名:
re.MustCompile(`(type1|type2)_(\d+)\.(csv|ini)`)
刪除尾隨句點:
如果目標是確保字串以三字符檔案副檔名結尾,沒有任何其他字符,則簡化表達式可以使用:
re.MustCompile(`\.\w{3}$`)
匹配行為
透過刪除否定集或使用替代語法,Go 的正規表示式引擎將準確地按預期匹配所需的字串。
以上是如何在 Go 的正規表示式引擎中匹配沒有特定檔案副檔名的字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!