Я бы сделал это следующим образом:
import re
pattern = r'\d[0-9\-]*'
number1 = re.findall(pattern,'Hello 43543')
number2 = re.findall(pattern,'John Doe 434-234')
print(number1[0]) #43543
print(number2[0]) #434-234
Мое решение предполагает, что вы ищете любую строку, начинающуюся с цифры и со всеми другими символами, являющимися цифрой или -
, это означает, что она также будет захватыватьнапример, 4---
или 9-2-4---
и т. д., однако это может не иметь значения в вашем случае использования.
Я хочу отметить, что за до написания шаблона вы должны ответить на вопрос:чему оно должно соответствовать точно ?Мой шаблон работает так, как он предназначен для приведенных вами примеров, но имейте в виду, что это НЕ означает автоматически, что он даст желаемый результат со всеми данными, которые вы, возможно, захотите обработать, используя его.