@leyarthemes

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

Мне нужно сплитить строку по пробелу или запятой. Вот как я это делаю: string.split(/(?:,|\s)+/) Как сделать так, чтобы строка не сплитилась по пробелу, если он находится в подстроке, которая внутри квадратных скобок? Например:
Строка: f, [, s, q, ], [abc def] jkl mno
Результат:
["f", "[", "s", "q", "]", "[abc def]", "jkl", "mno"]
  • Вопрос задан
  • 242 просмотра
Решения вопроса 1
Seasle
@Seasle Куратор тега JavaScript
Пока такое придумал
const string = 'f, [, s, q, ], [abc def] jkl mno';
const matches = string.match(/(\[[\w\s]+\])|([^\s,]+)/g);

console.log(matches);  // [ 'f', '[', 's', 'q', ']', '[abc def]', 'jkl', 'mno' ]
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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