2
當我嘗試這個表達式中golang我得到的正則表達式解析錯誤錯誤解析正則表達式:無效或不支持的Perl語法:`(`
錯誤解析正則表達式:?!無效或不支持的Perl語法:
(?!
regexp.MustCompile("^(?!On.*On\\s.+?wrote:)(On\\s(.+?)wrote:)$"),
誰能告訴我爲什麼它不工作,幫助我解決這個問題?
感謝
當我嘗試這個表達式中golang我得到的正則表達式解析錯誤錯誤解析正則表達式:無效或不支持的Perl語法:`(`
錯誤解析正則表達式:?!無效或不支持的Perl語法:
(?!
regexp.MustCompile("^(?!On.*On\\s.+?wrote:)(On\\s(.+?)wrote:)$"),
誰能告訴我爲什麼它不工作,幫助我解決這個問題?
感謝
Go正則表達式不支持lookarounds。
作爲一種變通方法,您可以使用
regexp.MustCompile("^On\\s(.+?)wrote:$")
和
regexp.MustCompile("^On.*On\\s.+?wrote:")
,並檢查第一個字符串匹配和第二個沒有。
您還可以添加一個可選的捕獲組(.*On)?
regexp.MustCompile("^On(.*On)?\\s.+?wrote:")
,並檢查是否有匹配,並返回真如果組1 On
結束 - 如果是,返回假,否則真。
go regexp軟件包使用RE2語法,而不是PCRE https://github.com/google/re2/wiki/Syntax – JimB
'(?!re)\t之前文本不匹配re(NOT SUPPORTED)'從頁面[這裏](https://github.com/google/re2/wiki/Syntax) – SomeDude
@svasa任何替代方法,使其工作? – user1091558