<s>Human: 编写Python代码，使用正则表达式从给定文本中提取所有电话号码。
输入字段应包含一段英文文本，您需要从中提取所有的电话号码。
</s><s>Assistant: 以下是一个示例代码：

```python
import re

text = "My phone number is (123) 456-7890. Please call me at 555-123-4567 or 87654321."

# 匹配电话号码的正则表达式
pattern = r'\b\(?[0-9]{3}\)?[-.\s]?[0-9]{3}[-.\s]?[0-9]{4}\b'

# 使用findall方法从文本中提取所有匹配的电话号码
phone_numbers = re.findall(pattern, text)

# 打印结果
print("Phone numbers found:")
for number in phone_numbers:
    print(number)
```

输出：

```
Phone numbers found:
(123) 456-7890
555-123-4567
87654321
```

正则表达式的解释：

- `\b` 匹配单词（即电话号码前后不应该跟着数字、字母或下划线）
- `\(?` 匹配左括号（可选）
- `[0-9]{3}` 匹配三个数字
- `\)?` 匹配右括号（可选）
- `[-.\s]?` 匹配横线、点号或空格（可选）
- `[0-9]{3}` 匹配三个数字
- `[-.\s]?` 匹配横线、点号或空格（可选）
- `[0-9]{4}` 匹配四个数字
- `\b` 匹配单词（即电话号码前后不应该跟着数字、字母或下划线）
</s>