首頁 > 後端開發 > Golang > 主體

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

Susan Sarandon
發布: 2024-10-26 07:35:30
原創
432 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!