Не останавливается на первой кавычке, потому что *
является жадным квантификатором.Это значит, что он найдет столько, сколько сможет.
Чтобы сделать его ленивым (то есть остановить как можно скорее), вы можете добавить ?
к квантификатору.,То есть: *?
Итак, с учетом этой строки aaabaaab
Это регулярное выражение будет соответствовать:
^.*b
➡ aaabaaab
^.*?b
➡ aaab
ПРИМЕЧАНИЕ :
Модификатор Ленивый также работает для других квантификаторов, таких как ?
, +
и {}
Как прокомментировал другой ответ, еще один способ остановиться на первой цитате с жадным квантификатором - не использовать .
, а anything but quote character
: [^"]*"