Мне легко запомнить этот шаблон, используя \K
(не допускать совпадения с регулярным выражением) :
\s"\K.+(?=")
Его можно прочитать как:
Игнорировать все влево до пробела и "\s"\K
(удалить "foo": "
)
Затем получить все, пока не будет найден первый "
1018*, поэтому ti вернет только bar
Проблема с этим подходом заключается в том, что вам всегда нужно иметь одинаковый ввод / шаблон элементов, если у вас есть что-то большее, не будет работатьНапример:
"bla": "foo": "bar"
Вернет:
foo": "bar
@ trincot answer [^"]*(?="$)
гарантирует всегда заключать последний элемент в ""
, так что вы можете иметь "bla": "foo": "bar"
и всегда получайте bar
@ ed-cottrell ответов "[^"]+"\s*:\s*"([^"]+)(?=")
получит второе, независимо от длины
Однако, чтобы просто получить группы, вы можете использовать:
"([^"]*)"
и затем с вашим программированием выбора получите желаемую группу