在Go 的正規表示式中實作負集合
提供的正規表示式旨在擷取不以特定檔案式旨在擷取不以特定檔案名稱結尾的檔案名稱(例如、htm、html、class、js)。然而,Go 中使用 regexp 套件的實作會產生與線上正規表示式解析器不同的結果。
出現這種差異是因為 Go 標準庫的 RE2 正規表示式引擎不支援負向查找(即,在原始表達)。因此,它無法排除以指定檔案副檔名結尾的字串。
要複製線上正規表示式解析器的行為,您可以考慮以下方法:
<code class="go">re := regexp.MustCompile(`^(.*\.(?!(htm|html|class|js)$))([^.]*)$`)</code>
<code class="go">re := regexp.MustCompile(`^(.*?)(?<!\.(htm|html|class|js)$)`)</code>
<code class="go">re := regexp.MustCompile(`.\w{3}$`)</code>
請注意,這些表達式可能會產生不同的結果,因為它們以不同的方式實現邏輯。選擇最適合您的用例的方法至關重要。
以上是如何在 Go 的正規表示式中實現負集:避免意外結果的指南的詳細內容。更多資訊請關注PHP中文網其他相關文章!