package main
import (
"regexp"
"fmt"
)
func main() {
var re = regexp.MustCompile(`(?:(?:^|\G(?<!^)[^'"]*")[^"]*+(?:"[^"']*"[^"]*)*+"|\G(?<!^))[^'"]*+(')`)
var str = `" This is a random sentence ' with 'a quote, the quote should match"
" There is no quote here thats the problem" Anything here should not match but now it does: ' .
" Some text " some more text " this is a quote : ' that should match"
" When there is a quote (') here, the other one does not work : " ' and that's perfect " even if you remove the first one this : " (') " will make it work because of the greedy ( I think ) but ifyou remove those between parenthesis, the other one is matching as of now, which I do not want to happen."
Another example would be this one : The following should not work, but it does "This is being quoted" not this: (') " and this is also being quoted "
"'"
`
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/