Обрезать строку регуляркой
Есть строки, в которых нужно вырезать регуляркой слова (слово - это текст разделенный пробелами, или текст от начала и до пробела, если речь идет про первое слово в строке.) которые содержат три и более цифры (цифры могут стоять не подряд, внутри слова)
Исходные строки:
X04000083670 Полотенцесушитель Водяной Cube 500 x 1200 W RAVAK
4660059930312 Полотенцесушитель электрический Terminus Виктория П7 450x750 черный RAL 9005 матовый
104SCS6610 Держатель разъемный для п с 1 10 100 шт упак
В результате должно получится:
Полотенцесушитель Водяной Cube x W RAVAK
Полотенцесушитель электрический Terminus Виктория П7 черный RAL матовый
Держатель разъемный для п с 1 10 шт упак
с помощью регулярки удалили, такие данные:
X04000083670, 1200, 500
4660059930312, 9005, 450x750
104SCS6610, 100
Задачу пытаюсь решить в обычном текстовом редакторе notepad, обработка списка регулярным выражением через поиск-замену.
Ответы (2 шт):
Вообще задача конечно интересная, но на мой взгляд идеально ее с помощью регулярных выражений не решить. Вот вариант, довольно близко приводящий текст к тому что нужно. Но не идеально.
/[.*?\d+.*?]{3,}/gim
Основаная мысль, в том что ищем что угодно, лишь бы там была цифра. И таких "что угодно" должно быть три или больше.
Пример есть здесь: https://regexr.com/758ea
Предложу такой вариант...
const arr = [
'X04000083670 Полотенцесушитель Водяной Cube 500 x 1200 W RAVAK',
'4660059930312 Полотенцесушитель электрический Terminus Виктория П7 450x750 черный RAL 9005 матовый',
'104SCS6610 Держатель разъемный для п с 1 10 100 шт упак'
]
const re = /^.+?\s|\d{3,}(\S*?\d{3,})?/g
const a = arr.map(s => s.replace(re, ''))
console.log(a)