регулярное выражение для получения числа от json - PullRequest
0 голосов
/ 24 января 2020

Как получить требуемый формат вывода текста из json полезной нагрузки с помощью регулярного выражения

"number" : 4aac4c35-8e3e-4730-8364-381884d6f20f:OP:QUAL:117804471:PON:false

Какое выражение для получения вывода выглядит следующим образом

"number" : 117804471

Не могли бы вы помочь .

Я попробовал следующее; но это не сработало; Я новичок ie в этом.

([\"]token[\"][\s]*:[\s]*)?([0-9]{9})

Ответы [ 2 ]

2 голосов
/ 24 января 2020

Да, как говорит @PJProudhon, нам не хватает некоторой точности, чтобы помочь вам.

Если вы просто хотите извлечь число без использования групп захвата, вы можете go с этим регулярным выражением: (?<=:)\d+(?=:\w+:(?:true|false))

Краткое объяснение:

  • (?<=:) является положительным взглядом, чтобы найти символ :.
  • \d+ - получить число по крайней мере 1 десятичный знак или более.
  • (?=:\w+:(?:true|false)) является положительным прогнозом для поиска :, слова, :, а затем true или false.

Небольшой тест с несколькими значениями здесь: https://regex101.com/r/1nRnct/2

Надеюсь, это поможет вам.

1 голос
/ 24 января 2020

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

Получение некоторой строки с учетом следующего:

  • Начиная с двойного кавычка.
  • За ним следует двоеточие, иногда окруженное любым количеством пробелов.
  • В правой части следует костюм, отделенный двоеточием. токены.
  • Один из тех, которые состоят только из чисел.

Попытка заменить этот вход только:

  • Двойной кавычка в закрытом токене.
  • За ним следует двоеточие, сохраняются пробелы.
  • Сразу за ним идет токен только с цифрой.

Затем вы можете использовать следующий шаблон для получения совпадения: ^(?<token>"[^"]+"\s*:\s*)(?:\d*[^\d:][^:]*:)*(?<number>\d+)(?::[^:]*)*$.

Для замены следует использовать следующее: $1$2.

Демо здесь .

Это может быть упрощено или адаптировано, когда зная дополнительные правила.

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