Golang 创建一个包含正则表达式元字符的字符串
正则表达式是一个定义搜索模式的字符序列。Go语言支持正则表达式。正则表达式用于解析、过滤、验证和从大型文本中提取有意义的信息,如日志、其他程序产生的输出等。
在 Go regexp 中,你可以在 QuoteMeta() 函数的帮助下创建一个字符串,以转义指定文本中的所有正则表达式元字符。这个函数返回的字符串是一个与字面文本相匹配的正则表达式。这个函数是在regexp包中定义的,所以要访问这个方法,你需要在你的程序中导入regexp包。
语法
func QuoteMeta(str string) string
例1 :
// Go program to illustrate how to create
// a string that escapes all regular
// expression metacharacters
package main
import (
"fmt"
"regexp"
)
// Main function
func main() {
// Escaping all regular
// expression metacharacters
// Using QuoteMeta () function
res1 := regexp.QuoteMeta(`String 1: .+*()|[]{}^`)
fmt.Println(res1)
res2 := regexp.QuoteMeta(`String 2: +()*`)
fmt.Println(res2)
res3 := regexp.QuoteMeta(`String 3: []|{}`)
fmt.Println(res3)
res4 := regexp.QuoteMeta(`String 4: ^$*-,`)
fmt.Println(res4)
}
输出
例2 :
// Go program to illustrate how to create
// a string that escapes all regular
// expression metacharacters
package main
import (
"fmt"
"regexp"
)
// Main function
func main() {
// Creating and initializing string
// Using shorthand declaration
s1 := `+*?()|[]^`
s2 := `+*?()|[]^
`
if s1 == s2 {
// Escaping all regular
// expression metacharacters
// Using QuoteMeta () function
res := regexp.QuoteMeta(s1)
fmt.Println("String:", res)
} else {
fmt.Println("Not Equal")
}
}
输出
Not Equal
极客教程