Как в регулярном выражении указать запятую, после которой идёт пробел
Как сделать, чтобы регулярка
RegExp("(0|[1-9][0-9,]*)", "g")
Игнорировала запятую, после которой идёт пробел, а с остальными работала так же, как и раньше.
Ответы (2 шт):
Автор решения: vsemozhetbyt
→ Ссылка
Поскольку опциональная часть с запятой может быть только одна (если это разделитель дробной части, а не разделитель порядков), возможно, этого хватит:
console.log(
"1? 2! 3,3, 4".match(
/0|[1-9]\d*(?:,\d+)?/g
)
);
Автор решения: Wiktor Stribiżew
→ Ссылка
По видимому, нужно найти последовательность чисел без начальных нулей.
В таком случае необходимо использовать
const text = "1? 2! 3,3, 4";
const intrx = String.raw`(?:0|[1-9]\d*)`;
console.log(text.match(RegExp(`${intrx}(?:,${intrx})*`, 'g')))
Регулярное выражение будет выглядеть так:
/(?:0|[1-9]\d*)(?:,(?:0|[1-9]\d*))*/g
Подробности
(?:0|[1-9]\d*)-0или цифра от1до9а потом ноль и более любых цифр(?:- начало незахватывающей подмаски:,- запятая(?:0|[1-9]\d*)-0или цифра от1до9а потом ноль и более любых цифр
)*- ноль и более повторов