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

為什麼我的正規表示式否定集在 Go 中不起作用?

DDD
發布: 2024-10-27 11:05:02
原創
291 人瀏覽過

Why Doesn't My Regex Negated Set Work in Go?

正規表示式否定集在Go 中不起作用

使用者遇到了一個問題,與線上正規表示式解析器相比,他們的正規表示式在Go 中的行為不同。目的是將檔案名稱與特定條件進行匹配,排除具有某些檔案副檔名的檔案名稱。然而,在表達式中使用否定集 (?!) 在 Go 中不會產生所需的結果。

Go 的RE2 引擎和缺乏Lookaround 支援

The Go 標準庫採用RE2 引擎,該引擎缺乏對某些功能的支持,包括前瞻運算符(? !這意味著 Go 不支援使用者表達式中使用的否定先行運算子。

使用簡化表達式的替代解決方案

要實現預期功能,使用者可以簡化符合檔案名稱所需特徵的表達式。可以使用更明確的模式來取代使用否定集,例如 .w{3}$:

  • 。表示句點。
  • w{3} 指定三個連續的單字字元(字母、數字或底線)。
  • $ 表示字串結尾。

這個簡化的表達式確保檔案名稱以三個字元的檔案副檔名結尾,而不需要否定集。

以上是為什麼我的正規表示式否定集在 Go 中不起作用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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