package main
import (
"regexp"
"fmt"
)
func main() {
var re = regexp.MustCompile(`(?m)(?P<street>\d+\s.*?(?:,\s*\w*\s*\d+)*),\s*(?P<city>.*?),\s*(?P<state>[A-Za-z]+)\s*(?P<zip>\d+)?,*`)
var str = `9320 Se Woodstock Blvd, Portland, OR 97266
921 S E Powell Blvd, PORTLAND, OR 97202
6560 Sw Beaverton, Raleigh Hills, OR 97225
2875 Se Powell Blvd, Portland, Or 97202, Usa
1311 Nw 23rd Ave, Portland, OR 97210
7710 Sw Barbur Blvd, Portland, OR 97219
1462 Ne 122nd Ave., Portland, OR 97230
1831 W Burnside, PORTLAND, OR 97209
1881 Sw 5th Ave, Portland, OR 97201
3610 Se Hawthorne Blvd, Portland, OR 97214
1850 Sw Skyline Blvd., Portland, OR 97221
9 Centerpointe Dr, Lake Oswego, OR 97035
7700 Southwest Dartmouth Avenue, 120, Tigard, OR 97223
4811 Meadows Road , Suite 111, Lake Oswego, OR 97035`
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/