Golang : Extract pattern using regular expression

In the below example, all texts inside square brackets in extracted using FindAllString function.
func ( re *Regexp ) FindAllString ( s string, n int ) [ ] string returns a slice of all successive matching texts based on the regular expression.
Integer n signifies the number of matches. n = -1 would return all matches.


Go ( Golang ) : Extracting all text from square brackets

package main

import (
    "fmt"
    "regexp"
    "strings"
)

func main() {

    var text = "Extract from square brackets [abc ... zzz] and [algo go] from this [line]."

    exp := regexp.MustCompile(`\[.*?\]`)

    // Matches would contain a slice of all successive matching text
    // based on the regular expression.
    matches := exp.FindAllString(text, -1) 
    fmt.Println("All matches : " + strings.Join(matches," "))

    for _, matching_text := range matches {
        fmt.Println (matching_text)
    }   
    fmt.Println("First 3 matches : " + strings.Join(exp.FindAllString(text, 3), " "))
    fmt.Println("First 2 matches : " + strings.Join(exp.FindAllString(text, 2), " "))
    fmt.Println("First 1 matches : " + strings.Join(exp.FindAllString(text, 1), " "))
    fmt.Println("First 0 matches : " + strings.Join(exp.FindAllString(text, 0), " "))
}

Output

All matches : [abc ... zzz] [algo go] [line]
[abc ... zzz]
[algo go]
[line]
First 3 matches : [abc ... zzz] [algo go] [line]
First 2 matches : [abc ... zzz] [algo go]
First 1 matches : [abc ... zzz]
First 0 matches : 


© 2019-2026 Algotree.org | All rights reserved.

This content is provided for educational purposes. Feel free to learn, practice, and share knowledge.
For questions or contributions, visit algotree.org

"The best error message is the one that never shows up. - Thomas Fuchs"