PUBLISHED ON: MARCH 13, 2023
How to extract all regular expression matches from string with Go language?
In this tutorial, we will create a program in Go language to extract all matching regular expression from a provided string. We are going to use standard packages from Go languages library;
Import required packages (Golang):
fmt - Implement formatted input output in Go. regexp - This package allows us to search using regular expressions.
package main import ( "fmt" "regexp" )
Extract regex from string
Let's declare a variable containing the string to extract regex from.
func main() { str := "echo $((1+2)) $((?)))" }
Now, we can use the regex package with MustCompile() function to define a regular expression. (assign a varible for further use and easy reading)
re := regexp.MustCompile(`\$\(\((.*?)\)\)`)
To extract all regular expression matches from a string a store that into a list varible use FindAllStringSubmatch(string. int) with the assign variable.
command := re.FindAllStringSubmatch(str, -1)
We can use a for loop to go through all matched patterns.
for i := range command { fmt.Println("Match found :", command[i][1]) }
Take a look at the final code:
package main import ( "fmt" "regexp" ) func main() { str := "echo $((1+2)) $((?)))" re := regexp.MustCompile(`\$\(\((.*?)\)\)`) command := re.FindAllStringSubmatch(str, -1) for i := range command { fmt.Println("Message :", command[i][1]) } }