Я хочу написать регулярное выражение для извлечения определенных ключей и значений некоторой строки JSON
. Это строка JSON
:
{"key1": "value1", "key2": "value2"}//there are more key-values
И это регулярное выражение, которое я придумал:
^{\s*("([^\"]+)"\s*:\s*"([^\"]+)",?)+\s*}$
Проблема в том, что вышеупомянутое регулярное выражение поддерживает толькопервый набор значения ключа:
{"key1": "value1"}
или
{"key1": "value1", }
С конечными пробелами до и после "value"
и "key"
, но, как я уже говорил, это не работает для болеечем одна пара ключ-значение, например:
{"key1": "value1", "key2": "value2"}
Я добавил ^ {\ s *(
"([^ \"] +) "\ s *: \ s *" ([^\ "] +)",? )+
\ s *} $, чтобы регулярное выражение поддерживало повторение шаблона "key": "value"
в json. Но это не работает. Как я могу это исправить?