Go Regex软件包用于搜索字符串。要搜索字符串, 我们需要提供字符串模式。
我们需要将模式编译到regex对象中, 以便我们可以通过它调用方法。
可以使用compile()和mustcompile()函数来检索正则表达式对象。现在我们可以使用函数来查找字符串, 例如FindString(), FindStringSubmatch(), FindStringIndex()等。
转正则表达式示例1
package main
import (
"fmt"
"regexp"
)
func main() {
re := regexp.MustCompile(".com")
fmt.Println(re.FindString("google.com"))
fmt.Println(re.FindString("abc.org"))
fmt.Println(re.FindString("fb.com"))
}
输出:
.com
.com
FindString()方法返回一个字符串, 该字符串具有最左边匹配的文本。如果找不到匹配项, 则返回空字符串。
转正则表达式示例2
package main
import (
"fmt"
"regexp"
)
func main() {
re := regexp.MustCompile(".com")
fmt.Println(re.FindStringIndex("google.com"))
fmt.Println(re.FindStringIndex("abc.org"))
fmt.Println(re.FindStringIndex("fb.com"))
}
输出:
[6 10]
[]
[2 6]
转正则表达式示例3
我们还可以使用FindStringSubmatch()方法, 该方法返回具有最左边匹配项和匹配项文本的字符串切片。如果找不到匹配项, 则返回值为空字符串。
package main
import (
"fmt"
"regexp"
)
func main() {
re := regexp.MustCompile("f([a-z]+)ing")
fmt.Println(re.FindStringSubmatch("flying"))
fmt.Println(re.FindStringSubmatch("abcfloatingxyz"))
}
输出:
[flying ly]
[floating loat]
Process finished with exit code 0