TS / JS разделяет часть строки из соответствия регулярному выражению - PullRequest
0 голосов
/ 29 июня 2018

В прошлом у меня было это регулярное выражение:

\{(.*?)\}

И ввел эту строку:

logs/{thing:hi}/{thing:hello}

Тогда я использовал следующее:

console.log(string.split(regex).filter((_, i) => i % 2 === 1));

Чтобы получить этот результат:

thing:hi
thing:hello

По несоответствующим причинам дизайна я изменил мое регулярное выражение на:

\{.*?\}

Но теперь, при использовании одной и той же тестовой строки и команды split, она возвращает только это:

/

Я хочу чтобы вернуть это:

{thing:hi}
{thing:hello}

Как я могу изменить разделение (или что-нибудь еще), чтобы сделать это?

1 Ответ

0 голосов
/ 29 июня 2018

Почему бы не использовать match?

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/match

Метод match() возвращает совпадения при сопоставлении строки с регулярным выражением .

Если вас интересует только возвращение двух строковых совпадений, тогда это намного проще, чем использовать split.

var foo = "logs/{thing:hi}/{thing:hello}";
console.log(foo.match(/{.*?}/g));
...