Регулярное выражение для захвата между двумя символами, которые соответствуют слову между ними - PullRequest
0 голосов
/ 30 мая 2020

Я пытаюсь найти наилучший способ извлечения всего текста между двумя символами (игнорируя разрывы строк), который соответствует слову между двумя указанными символами.

В приведенном ниже примере i хотите найти по zip 22222 и извлечь / сгруппировать его блок от { до } , то есть {"zip": "22222", "total": 2}

Пример:

{
   "zip":"11111",
   "total":1
},
{
   "zip":"22222",
   "total":2
},
{
   "zip":"33333",
   "total":3
}

Хотите извлечь / захватить / сгруппировать блок {...} для zip 22222, как показано ниже:

{
   "zip":"22222",
   "total":2
}  

Я пробовал следующее, но это захват блоков для всех почтовых индексов

(?s)(?<={)(.*?)(?=}) 

https://regex101.com/r/0wTDyj/1

1 Ответ

0 голосов
/ 01 июня 2020

У меня сработало регулярное выражение:

(? S) (? = {) (? :(? :( ?! "zip").) ? "Zip" \ s : \ s * "22222". *?) (? <=}) </p>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...