Составить регулярное выражение с помощью re

Помогите составить регулярное выражение с помощью re python3.

Исходные данные:

"isAutoOpen": false
"stayOnPage": true,
"vacancyId": "36627904",
"employerId": "1160188",
"isWithoutTest": true,
"ignoreResponseCheck": true,

Мне необходимо циклом забирать значения ключа vacancyId, то есть 36627904. Поэтому шаблон должен быть универсальным.


Ответы (2 шт):

Автор решения: nomnoms12

Регулярное выражение: "vacancyId": "(\d+)".

Пример:

import re


def main():
    s = '"isAutoOpen": false "stayOnPage": true, "vacancyId": "36627904", "employerId": "1160188", "isWithoutTest": true, "ignoreResponseCheck": true,'
    r = re.findall(r'"vacancyId": "(\d+)"', s)

    for x in r:
        print(x)


if __name__ == '__main__':
    main()

stdout:

36627904
→ Ссылка
Автор решения: nomnoms12

Исходные данные можно превратить в валидный JSON, если:

  • Добавить фигурные скобки
  • Добавить запятую после значения ключа isAutoOpen
  • Убрать завершающую запятую

Тогда можно будет использовать модуль json для парсинга.

Пример:

import json


def main():
    s = '{"isAutoOpen": false, "stayOnPage": true, "vacancyId": "36627904", "employerId": "1160188", "isWithoutTest": true, "ignoreResponseCheck": true}'
    d = json.loads(s)
    print(d['vacancyId'])


if __name__ == '__main__':
    main()

stdout:

36627904
→ Ссылка