我希望你去优化一下我的正则表达式。目标是让这个正则表达式更高效。我正在使用它来从一个字符串中解析出所有的电话号码。以下是我当前使用的正则表达式：
user
要优化提取电话号码的正则表达式，首先需要了解电话号码可能的格式。以下是一个更高效的正则表达式示例，考虑了多种常见的电话号码格式：

```regex
(?:(?:\+?(\d{1,3}))?[-. (]?(\d{3})[-. )]?(\d{3})[-. ]?(\d{4})(?: *(?:[xX]|ext\.?) *(\d{1,5}))?)
```

这个正则表达式包含以下部分：
- `(?:(?:\+?(\d{1,3}))?)` 匹配国际区号（如 +1 或 +86）。
- `[-. (]?(\d{3})[-. )]?` 匹配区号（如 123 或 (123)）。
- `(\d{3})[-. ]?(\d{4})` 匹配本地号码（如 456-7890 或 456.7890）。
- `(?: *(?:[xX]|ext\.?) *(\d{1,5}))?)` 匹配分机号（如 ext 1234 或 x1234）。

这个正则表达式涵盖了多种电话号码格式，并且更加高效。如果需要更具体的优化，可以根据实际数据进一步调整。
assistant