Другим вариантом может быть использование чередования для сопоставления либо 10 цифр без начального знака плюс, либо для сопоставления шаблона с +
и необязательным пробелом или дефисом:
(?:\d{10}|\+\d{2}[- ]?\d{3}-?\d{5})\b
Это будет соответствовать:
(?:
Группа без захвата
\d{10}
Совпадение 10 цифр
|
или
\+\d{2}[-\s]?\d{3}-?\d{5}
Соответствует +
, 2 цифры, необязательный символ пробела или -
, 3 цифры, необязательно -
, 5 цифр
)\b
Закрыть не захватывающую группу и границу слова
Regex demo
Если ваш язык поддерживает отрицательные взгляды, вы можете добавить (?<!\S)
, который проверяет, что предшествующее не является символом без пробелов.