@Hanry654

Как написать регулярное выражение?

нужно спарсить данные этом списке, только вот проблема в том, что в каждой строке может отсутствовать тот или иной параметр, как сделать более рационально?
"
login password a=23 b=73 c=3
login password a=23 b=3
login password a=73 c=3
login password b=23 c=73
"
  • Вопрос задан
  • 52 просмотра
Решения вопроса 1
@GrayHorse
const s = `login password a=23 b=73 c=3
login password a=23 b=3
login password a=73 c=3
login password b=23 c=73`;
const iterator = s.matchAll(/(?<=login password )(a=(?<a>\d+) ?)?(b=(?<b>\d+) ?)?(c=(?<c>\d+) ?)?/g);
[...iterator].forEach(match => console.log(match.groups));


Result:
{a: "23", b: "73", c: "3"}
{a: "23", b: "3", c: undefined}
{a: "73", b: undefined, c: "3"}
{a: undefined, b: "23", c: "73"}


Или проще без регулярок: взять подстроку после префикса — "a=23 b=73 c=3", разбить по пробелам, потом каждый элемент разбить по знаку = на ключ и значение.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Shellr57s
@Shellr57s
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы