簡體   English   中英

如何逃避正則表達式?

[英]How to unescape escaped regex?

我正在尋找regexp.QuoteMeta的反向。 它有這樣的功能嗎?

我試圖使用strings.Replace("\\", "", -1)手動取消它strings.Replace("\\", "", -1)但這很容易出錯/不可靠,因為它在所有情況下都不起作用(即過度轉義或unicode)。

我還嘗試添加一些引號並使用strconv.Unquote (eg strconv.Unquote(+ "https:\\/\\/ad.doubleclick.net" +) )但它出錯了。

使用regexp / syntax包解析字符串以獲取不帶引號的字符串:

func unquoteMeta(s string) (string, error) {
    r, err := syntax.Parse(s), 0)
    if err != nil {
        return "", err
    }
    if r.Op != syntax.OpLiteral {
        return "", errors.New("not a quoted meta")
    }
    return string(r.Rune), nil
}

操場的例子

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM