正则表达式是定义搜索模式的字符序列。 Go 语言支持正则表达式。正则表达式用于从大文本(如日志、其他程序生成的输出等)中解析、过滤、验证和提取有意义的信息。
在 Go regexp 中,您可以借助Find()方法在给定字符串中查找正则表达式。此方法返回一个切片,该切片保存正则表达式原始切片中最左边匹配的文本。如果未找到匹配项,则返回 nil。这个方法是在regexp包下定义的,所以为了访问这个方法,你需要在你的程序中导入regexp包。
句法:
func (re *Regexp) Find(s []byte) []byte
示例 1:
// Go program to illustrate how to
// find regexp from the given slice
package main
import (
"fmt"
"regexp"
)
// Main function
func main() {
// Finding regexp from the
// given slice of bytes
// Using Find() method
m := regexp.MustCompile(`geeks?`)
fmt.Printf("%q\n", m.Find([]byte(`GeeksgeeksGeeks, geeks`)))
fmt.Printf("%q\n", m.Find([]byte(`Hello! geeksForGEEKs`)))
fmt.Printf("%q\n", m.Find([]byte(`I like Go language`)))
fmt.Printf("%q\n", m.Find([]byte(`Hello, Welcome`)))
}
输出:
"geeks"
"geeks"
""
""
示例 2:
// Go program to illustrate how to
// find regexp from the given slice
package main
import (
"fmt"
"regexp"
)
// Main function
func main() {
// Finding regexp from
// the given slice
// Using Find() method
m := regexp.MustCompile(`language`)
res := m.Find([]byte(`I like Go language this language is "+
"very easy to learn and understand`))
if res == nil {
fmt.Printf("Found: %q ", res)
} else {
fmt.Printf("Found: %q", res)
}
}
输出:
Found: "language"