首頁 > 後端開發 > Golang > 如何解決 Go Regex 中的環視問題?

如何解決 Go Regex 中的環視問題?

Barbara Streisand
發布: 2024-11-30 16:45:11
原創
198 人瀏覽過

How to Work Around Lookarounds in Go Regex?

解析正規表示式時發生錯誤:無效的Perl 語法(?!

嘗試在Go 中使用正規表示式時,遇到錯誤:

error parsing regexp: invalid or unsupported Perl syntax: (?!
登入後複製

此錯誤特別發生在以下情況正規表示式:

regexp.MustCompile("^(?!On.*On\s.+?wrote:)(On\s(.+?)wrote:)$")
登入後複製

出現此問題是因為Go 正規表示式不支援環視,與Perl 不同,環視是檢查周圍文本而不消耗它的斷言。 >要解決此限制,請使用不同的方法:

首先,編譯兩個單獨的常規表達式:

然後,執行以下步驟:
first := regexp.MustCompile(`^On\s(.+?)wrote:$`)
second := regexp.MustCompile(`^On.*On\s.+?wrote:`)
登入後複製

檢查第一個是否與字串相符。 ,字串與兩個表達式都不匹配,因此傳回true。因此傳回false。 :
  1. 檢查符合項,若符合下列條件則回傳true:
  2. 第1 組結束與On。以On 結尾。

以上是如何解決 Go Regex 中的環視問題?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板