package main
import (
"regexp"
"fmt"
)
func main() {
var re = regexp.MustCompile(`(?ms)^(([A-Z][a-z]+)(?=[\ ])|([A-Z][a-z]*[\'\-])(?=[A-Z]?[a-z]+)|([A-Z][a-z]+)(?![\ '\-])|(?<=[\'\-])([a-z]+)|(?<=[a-z])([\ ])(?=[A-Z]))+$`)
var str = `Kamal Manil
Kamal O'Neil
Kamal Manil Malaka
Kamal Al-Shaba
Al-shaba
O'neil
Ol'Neil
Jo Jo
Jo
Kamal Manil
Kamal O' Neil
Kamal Manil Malaka
Kamal Al- Shaba
Al -shaba
O 'neil
Jo Jo
A B C Jo
Kamal SDF -''''sdf''-
A
a
A B
-Shana
'Neil
-shaba
'neil
([A-Z][a-z]+(?![\'\-]))`
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/