package main
import (
"regexp"
"fmt"
)
func main() {
var re = regexp.MustCompile(`(?ms)^ *(\w+) *: *"((?:[^"]|\\")+)" *(?=\n)`)
var str = `# ------------ THIS IS A COMMENT -----------
# ------------ THIS IS A COMMENT -----------
# ------------ THIS IS A COMMENT -----------
# ------------ THIS IS A COMMENT -----------
# ------------ THIS IS A COMMENT -----------
<check_type:"Windows" version:"2">
<custom_item>
value_data : "Administrators" || ("Auditors" && "Administrators")
value_data : "change permissions" | "create files / write data" \
| "create folders / append data" | "delete" \
| "delete subfolder and files"
value_data : "physicalPath:(\%SystemDrive\%|C:)"
value_type : USER_RIGHT
see_also : "Glob all the \"quotes\" inside me"
see_also : 'Same thing with simple \'quotes\' in values'
# ----------------- THIS IS A COMMENT -----------------
info : "Inappropriate granting of user rights can provide system,
administrative, and other high-level capabilities. Accounts
with the: 'Modify firmware environment values' user right can
# ----------------- THIS IS <<NOT>> A COMMENT ----------------
change hardware configuration environment variables. This
could result in hardware failures or a denial of service."
</custom_item>
<if>
# ----------------------------------------------------- (\n)
# ------------ Start of the condition test ------------ (\n)
# ----------------------------------------------------- (\n)
<condition type:"AND">
</condition>
# ---------------------- If true ---------------------- (\n)
<then>
</then>
# ----------------------- False ----------------------- (\n)
<else>
</else>
</if>
</check_type>`
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/