Указать в 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);