// Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Package regexp implements a simple regular expression library. // QuoteMeta func is copied here to avoid linking the entire Regexp library. package rubex func special(c int) bool { for _, r := range `\.+*?()|[]^$` { if c == int(r) { return true } } return false } // QuoteMeta returns a string that quotes all regular expression metacharacters // inside the argument text; the returned string is a regular expression matching // the literal text. For example, QuoteMeta(`[foo]`) returns `\[foo\]`. func QuoteMeta(s string) string { b := make([]byte, 2*len(s)) // A byte loop is correct because all metacharacters are ASCII. j := 0 for i := 0; i < len(s); i++ { if special(int(s[i])) { b[j] = '\\' j++ } b[j] = s[i] j++ } return string(b[0:j]) }