package main
import (
"regexp"
"fmt"
)
func main() {
var re = regexp.MustCompile(`(?m)(?xm)^
(?:
[^;"'']+
(?:
(?:'[^'']*')|
(?:"[^"]*")
)*
)*+
(;\N+)`)
var str = `$x = "a" & "b" ; com
; test
; "test"
; "test'
; 'test'
; 'test"
$x='' ; chaîne "vide"
$x="" ; chaîne "vide"
$x="" ; chaîne 'vide'
$x = "aa;aa" ; Comment-line
$x = "a" ;$x='b'
$x=' '' '';'' ";" "'' ''" "''"' ; chaîne "vide"
$x=' '' '';'' ";" "'' ''" "''"' ; chaîne 'vide'
$x=" ' ';' "";"" ""' '"" ""'""" ; chaîne "vide"
$x=" ' ';' "";"" ""' '"" ""'""" ; chaîne 'vide'
$x = 'bb;b'
$x = "bb;b"
$x = " " & "bb"
;;;;
; ; ;";'
; test`
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/