Мне нравится /title:"(.+?)"/
, потому что он использует ленивое сопоставление, чтобы остановить .+
, потребляющий весь текст, пока не будет найден последний "
в строке.
Не будет работать, если строка переносит строки или содержит экранированные кавычки.
В языках программирования, где вы хотите иметь возможность включить разделитель строк внутри строки, вы обычно предоставляете символ или последовательность «escape».
Если ваш экранирующий символ был \
, тогда вы могли бы написать что-то вроде этого ...
/title:"((?:\\"|[^"])+)"/
Это железнодорожная схема. Железнодорожные диаграммы показывают вам, в каком порядке разбираются вещи ... представьте, что вы - поезд, начинающийся слева. Вы потребляете title:"
, затем \"
, если можете .. если не можете, то вы потребляете not a "
. Символ> означает, что этот путь предпочтителен ... поэтому вы попытаетесь выполнить цикл ... если вы не можете использовать «» для завершения.
Я сделал это с https://regexper.com/#%2Ftitle%3A%22((%3F%3A%5C%5C%22%7C%5B%5E%22%5D)%2B)%22%2F
но теперь есть плагин для текстового редактора Atom, который делает это.