On 26-Sep-2015 11:31, Dmitry Olshansky wrote:
On 25-Sep-2015 22:37, skilion wrote:
On Friday, 25 September 2015 at 07:40:18 UTC, Dmitry Olshansky wrote:
Removing anonymous groups and using raw-literal:

regex(`^\s*(\w+)\s*=\s*"(.*)"\s*$`)

Looks simpler I guess.

Good advice, thanks.

Though if key="value" is expected I'd suggest to use lazy .* -
`"(.*?)"` to stop on first " if any.

After playing a bit with it, I realized that it doesn't work in this
case (a="a"a" still match). The right solution would be "(.[^"])"

I hope that was ([^"]*)

Yeah, .*? won't work because of '$' at the end of the pattern.
Anyway to allow classical escapes in string literal I'd go for:

`"(?:[^"]+|\")*"`


i.e. `"(?:[^"]+|\\")*"` to defeat regex escaping.

--
Dmitry Olshansky

Reply via email to