слишком много ненужных и вредных символов в вашем выражении.
Использование окружающих []
made findall
соответствует отдельным символам, что объясняет вывод, который вы получаете.
Для этого требуетсяполное переосмысление: экранируйте скобки, используйте \d+
для соответствия одной или нескольким цифрам, а также явные cm
и пробелы.
создайте группу, соответствующую только цифрам + единица, используйте search
, чтобы найти группуи отобразить его.
import re
string = '6\' 3" ( 190 cm )'
pattern = re.compile(r'\( (\d+ cm) \)')
>>> pattern.search(string).group(1)
'190 cm'