Проблема в том, что (?<name>)
- это .*
, который будет есть все, включая двойные кавычки.Простой способ исправить это - изменить его на .*?
.(Это неохотное сопоставление; оно сопоставляет как можно меньше символов, а не столько, сколько возможно.)
Другой способ сделать это - использовать [^"]*
вместо .*
.
Здесь есть важный урок о регулярных выражениях: всякий раз, когда вы пишете регулярное выражение, не просто думайте о том, что вы хотите сопоставить;подумайте о том, что вы не хотите сопоставить. очень общий источник ошибок с регулярными выражениями совпадает слишком много .