Вы можете добавить к регулярному выражению положительный прогноз, который требует, чтобы слово в конце содержало хотя бы одну цифру для удаления: (?=\D*\d)
. Это предотвратит удаление обычных слов, которые не содержат цифр.
Полная программа:
#!/usr/bin/env python3
import re
texts = [
'asus zenfone 3s max zc521tl',
'asus zenfone max plus (m1) zb570tl',
'asus zenfone max pro (m1) zb601kl/zb602k',
'nokia 3.1 c',
'nokia 3',
'asus zenfone 3 zoom ze553k',
'asus zenfone 3 deluxe zs570kl',
'blackberry keyone',
'htc explorer',
'lg tribute',
'acer liquid z520',
]
for text in texts:
print(re.sub(r'(?=\D*\d)[a-zA-Z0-9/]{5,}$', '', text))
Вывод:
asus zenfone 3s max
asus zenfone max plus (m1)
asus zenfone max pro (m1)
nokia 3.1 c
nokia 3
asus zenfone 3 zoom
asus zenfone 3 deluxe
blackberry keyone
htc explorer
lg tribute
acer liquid z520