Мне нужно совместить строки с двойными кавычками внутри большей строки, например:
"foo bar" == ""
он должен соответствовать "foo bar"
и ""
и для этого
"foo \" bar" == "\""
он должен соответствовать "foo \" bar"
и "\""
до сих пор у меня есть это регулярное выражение:
(?<!\\\\)"(?:\\\\"|[^"])*(?<!\\\\)"
DEMO
но он заканчивается после первой сбежавшей цитаты. и не возвращать "foo \" bar"
.
Я бы использовал это:
(?<!\\)"(?:\\"|[^"])*(?<![^\\]\\)"
Демо на regex101
(?<!\\)"(?:(?<!\\)\\"|[^"])*(?<![^\\]\\)"
похоже, работает