package main
import (
"regexp"
"fmt"
)
func main() {
var re = regexp.MustCompile(`(?m)^(?<Name>\w+)\s\w+\s(?<Major>\*|\d+)\.?(?<Minor>\*|\d+)?\.?(?<Patch>\*|\d+)?`)
var str = `Android OS 5.1 / API (LYZ28N/500200305)
Android OS 5.1.1 / API (LYZ28N/500200305)
Android OS 10 / API-29 (LYZ28N/500200305)
Android OS 102222.1323121312 / API-29 (LYZ28N/500200305)
iPhone OS 5.12 / API (LYZ28N/500200305)
iPhone OS 5 / API (LYZ28N/500200305)
iPhone OS 5.1.10000.1.1.1.1.1.1.1.1 / API (LYZ28N/500200305)`
for i, match := range re.FindAllString(str, -1) {
fmt.Println(match, "found at index", i)
}
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Golang, please visit: https://golang.org/pkg/regexp/