首頁  >  文章  >  後端開發  >  如何在 Go 的正規表示式引擎中匹配沒有特定檔案副檔名的字串?

如何在 Go 的正規表示式引擎中匹配沒有特定檔案副檔名的字串?

Susan Sarandon
Susan Sarandon原創
2024-10-26 07:35:30424瀏覽

How Can I Match Strings Without Specific File Extensions in Go's Regex Engine?

理解Go 正規表示式引擎中的否定集

在Go 中,標準函式庫的正規表示式引擎(RE2)缺乏對環視的支持,包括負前瞻運算子? !如提供的正規表示式中所使用的:

^(.*\.(?!(htm|html|class|js)$))?[^.]

此正規表示式旨在匹配不以特定檔案副檔名結尾的字串。然而,在 Go 中,由於缺乏環視支持,它無法按預期運行。

替代解決方案

除了依賴否定集之外,還有替代方案在Go 中處理這種情況的解決方案:

  1. 直接驗證檔案副檔名:
    將否定集替換為直接檢查所需的檔案副檔名:

    re.MustCompile(`(type1|type2)_(\d+)\.(csv|ini)`)
  2. 刪除尾隨句點:
    如果目標是確保字串以三字符檔案副檔名結尾,沒有任何其他字符,則簡化表達式可以使用:

    re.MustCompile(`\.\w{3}$`)

匹配行為

透過刪除否定集或使用替代語法,Go 的正規表示式引擎將準確地按預期匹配所需的字串。

以上是如何在 Go 的正規表示式引擎中匹配沒有特定檔案副檔名的字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn