как используя RegEx python достать значение от тире до первых круглых скобок

Вот текст для примера:

Samsung - Samsung Galaxy S10 Lite (3.4836)

Apple - Apple iPhone XS (256GB) (3.5040)

Huawei - Huawei P30 Pro (3.5212)

Надо сделать так чтобы было:

Samsung Galaxy S10 Lite

Apple iPhone XS

Huawei P30 Pro


Ответы (3 шт):

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

Вы не описали в каком виде хранится исходный текст. Для примера как работать со строкой:

import re
text = 'Samsung - Samsung Galaxy S10 Lite (3.4836)'
m = re.search('- (.*)\s\(', text)
result = m.group(1)
→ Ссылка
Автор решения: Профессор Фьюри

Можно так:

import re
exp = re.compile(r'-\s+([0-9a-z\s]+)\s+\(',
                 re.IGNORECASE)
line = 'Samsung - Samsung Galaxy S10 Lite (3.4836) | Apple - Apple iPhone XS (256GB) (3.5040) | Huawei - Huawei P30 Pro (3.5212)'
print(exp.findall(line))

На выходе:

['Samsung Galaxy S10 Lite', 'Apple iPhone XS', 'Huawei P30 Pro']
→ Ссылка
Автор решения: Endermens Nikos
import re

text = 'Apple - Apple iPhone XS (256GB) (3.5040)'
b = r"- (.*)\s\("
b1 = r"\(.*\)|\s-\s.*"

# тип модели
model_phone = (re.findall(b, text))
for i in model_phone:
  model_phone = iteem
model_phone = re.sub(b1, "", model_phone)
print(model_phone)
""" Apple iPhone XS """
→ Ссылка