Регулярное извлечение подстрок без учета внутреннего символа, используемого для соответствия - PullRequest
2 голосов
/ 03 мая 2020

Я сопоставляю строку пары ключ-значение между символами "" с "(.*?)" как я могу игнорировать любые дополнительные "символы в пределах части значения.

пример строки {"1"=>"email@example.com"}

1 Ответ

0 голосов
/ 03 мая 2020

Вы можете использовать

String pat = "(?<=\\{|=>)\"(.*?)\"(?=\\}|=>)";

См. Демоверсию regex

Подробности

  • (?<=\{|=>) - положительный взгляд сзади, который соответствует местоположению, которому непосредственно предшествует { или =>
  • " - двойная кавычка
  • (.*?) - Группа 1: любой ноль или более символов кроме символов разрыва строки, как можно меньше
  • " - двойная кавычка
  • (?=\}|=>) - положительный прогноз, который соответствует местоположению, за которым сразу следует } или =>.
...