📜  GO语言 正则表达式

📅  最后修改于: 2021-01-02 09:08:23             🧑  作者: Mango

正则表达式

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