Как разбить строку по шаблону регулярного выражения?
Из строки:
'товар1 5шт объект 3ед изделие 7 единиц'
надо получить список:
['товар1','объект','изделие']
Такой пример строки:
'опрыскиватель gig 600-2 шт.,косилка роторная пу-270 - 2 ед., опрыскиватель 2000 л.- 1 штука'
При этом, разбиение должно происходить по шаблону регулярного выражения, а не по запятой.
Ответы (2 шт):
Автор решения: mrEvgenX
→ Ссылка
Должно подойти в качестве начальной идеи. Последний элемент, в данном случае будет всегда пустой, его можно откинуть. Данном случае - это когда идет название товара а потом через пробел - его количество.
>>> import re
>>> re.split(r' \d+(?:шт|ед| единиц)', 'товар1 5шт объект 3ед изделие 7 единиц')[:-1]
['товар1', ' объект', ' изделие']
Автор решения: MaxU
→ Ссылка
попробуйте так:
In [18]: s = 'опрыскиватель gig 600-2 шт.,косилка роторная пу-270 - 2 ед., опрыскиватель 2000 л.- 1 штука'
In [19]: pat = r"\d+\s*(?:единиц|ед|штук\w*|шт\w*)[\s\.,]*"
In [20]: re.split(pat, s)
Out[20]:
['опрыскиватель gig 600-',
'косилка роторная пу-270 - ',
'опрыскиватель 2000 л.- ',
'']