Обрезать строку регуляркой

Есть строки, в которых нужно вырезать регуляркой слова (слово - это текст разделенный пробелами, или текст от начала и до пробела, если речь идет про первое слово в строке.) которые содержат три и более цифры (цифры могут стоять не подряд, внутри слова)

Исходные строки:

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 шт):

Автор решения: newman

Вообще задача конечно интересная, но на мой взгляд идеально ее с помощью регулярных выражений не решить. Вот вариант, довольно близко приводящий текст к тому что нужно. Но не идеально.

/[.*?\d+.*?]{3,}/gim

Основаная мысль, в том что ищем что угодно, лишь бы там была цифра. И таких "что угодно" должно быть три или больше.

Пример есть здесь: https://regexr.com/758ea

→ Ссылка
Автор решения: ksa

Предложу такой вариант...

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)

→ Ссылка