Golang 从字符串中提取所有的正则表达式

Golang 从字符串中提取所有的正则表达式

正则表达式是一个定义搜索模式的字符序列。Go语言支持正则表达式。正则表达式用于解析、过滤、验证和从大型文本中提取有意义的信息,如日志、其他程序产生的输出等。

Go regexp中,你可以在 FindAllString() 方法的帮助下,找到给定字符串中的所有正则表达式。这个方法返回指定正则表达式的所有连续匹配的片断,如包注释中的’All’描述所定义。或者,如果没有找到匹配,该方法将返回nil,这里的count表示返回的片断的子串数量。这个方法是在regexp包下定义的,所以为了访问这个方法,你需要在你的程序中导入regexp包。

语法

func (re *Regexp) FindAllString(str string, m int) []string

例1 :

// Go program to illustrate how to find
// all the regexp from the given slice
package main
  
import (
    "fmt"
    "regexp"
)
  
// Main function
func main() {
  
    // Finding all regexp from 
    // the given string
    // Using FindAllString () method
    m := regexp.MustCompile(`geeks.`)
  
    fmt.Println(m.FindAllString("GeeksgeeksGeeks, geeks", -1))
    fmt.Println(m.FindAllString("Hello! geeksForGEEKsgeeks-geeks", 2))
    fmt.Println(m.FindAllString("I like Go language", 0))
    fmt.Println(m.FindAllString("Hello, Welcome", 1))
  
}

输出

[geeksG]
[geeksF geeks-]
[]
[]

例2 :

// Go program to illustrate how to find
// all the regexp from the given slice
package main
  
import (
    "fmt"
    "regexp"
)
  
// Main function
func main() {
  
    // Finding the number from 
    // the given string
    // Using FindAllStrings() method
    s := "I45, like345, Go-234 langu34age"
  
    m := regexp.MustCompile(`[-]?\d[\d]*[\]?[\d{2}]*`)
    res := m.FindAllString(s, 2)
    for _, ele := range res {
        fmt.Println("Number:", ele)
    }
}

输出

Number: 45
Number: 345

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程