package main
import (
"regexp"
"fmt"
)
func main() {
var re = regexp.MustCompile(`(?m)^(?!€*$)(€ ?(?!.*€)(?=,?\d))?\-?([1-9]{1,3}( \d{3})*|[1-9]{1,3}(\.\d{3})*|(0|([1-9]\d*)?))(,[0-9]{2})?( ?€)?$`)
var str = `valid:
123 456,78
123.456,78
€6.954.231
€ 896.954.231
16.954.231 €
12 346 954 231€
€10,03
10,03
1,39
,03
0,10
€10567,01
€ 0,01
€1 234 567,89
€1.234.567,89
€,10
€ ,10
invalid
1,234 € 1,1
50#,50
123,@€
€€500
0001
€ ,001
€0,001
12.34,56
123456.123.123456
€123€
€`
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/