[英]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.