Регулярное выражение Python сохраняет соответствие конца строки и следующей строки, даже если в конце есть $Python

Программы на Python
Anonymous
Регулярное выражение Python сохраняет соответствие конца строки и следующей строки, даже если в конце есть $

Сообщение Anonymous »

Я пытаюсь проанализировать выходные данные команды Linux lscpu с помощью регулярного выражения Python. Например, я пытаюсь получить название модели процессора и распечатать его с помощью кода ниже:
import re
import subprocess

cpu_model_name_pattern = re.compile(r'\s{1,2}Model\sname:\s+([a-zA-Z0-9\.\@\s+\(\)\-]+)$')
proc = subprocess.run('lscpu', stdout=subprocess.PIPE,\
stderr=subprocess.PIPE, shell=True, check=True, encoding="utf-8")

print(cpu_model_name_pattern.findall(proc.stdout))

Выход:
['Intel(R) Xeon(R) Platinum 8380 CPU @ 2.30GHz\nCPU family']

Ожидаемое название модели процессора:
['Intel(R) Xeon(R) Platinum 8380 CPU @ 2.30GHz']

В отличие от онлайн-тестера regex101.com, приведенное выше регулярное выражение сохраняет соответствие конца строки \n и заголовка следующей строки в выводе команды lscpu даже несмотря на то, что в конце моего регулярного выражения есть явный $.
Я пытался добавить к регулярному выражению ^, чтобы оно соответствовало началу строки , но это тоже не помогло.
Вот несколько строк из вывода команды lscpu:
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Address sizes: 40 bits physical, 57 bits virtual
Byte Order: Little Endian
CPU(s): 12
On-line CPU(s) list: 0-11
Vendor ID: GenuineIntel
Model name: Intel(R) Xeon(R) Platinum 8380 CPU @ 2.30GHz
CPU family: 6
Model: 106


Подробнее здесь: https://stackoverflow.com/questions/785 ... -has-at-th

Вернуться в «Python»