Указать в regexp необходимость наличия хотя бы одного из двух символов

У меня есть строки "1 2 3" или "1,2,3" или "1, 2, 3", и мне нужно превратить их в массив [1,2,3], можно ли составить универсальное регулярное выражение для этих вариантов разделителей?


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

Автор решения: Евгений Третьяков

Возможно split вам покажется удобнее, использую JavaScript:

let a = '1 2 3'
a.split(' ')
a.split(',')
a.split(', ')

Либо:

let a = '1 2 3,4, 5, 7 8'
let res = a.replace(/,/g, " ").replace(/\s+/g, " ").split(' ')

// ['1', '2', '3', '4', '5', '6', '7', '8']
→ Ссылка
Автор решения: gil9red

Можно попробовать искать по самим значениям, чем по разделителям (пример на питоне):

import re

print(re.findall(r'\d+', "1 2 3"))
print(re.findall(r'\d+', "1,2,3"))
print(re.findall(r'\d+', "1, 2, 3"))
# ['1', '2', '3']
→ Ссылка
Автор решения: vsemozhebuty

Можно так:

const string =  "1 2 3 4,5,6 7, 8, 9";

const array = string.split(/, ?| /);

console.log(array);

→ Ссылка