Python 中从字符串中提取数字90


在 Python 中,经常需要从字符串中提取数字,以便进行处理或分析。本文将详细介绍从字符串中提取数字的各种方法,包括使用正则表达式、内建函数和第三方库。

1. 正则表达式

正则表达式是一种强大的模式匹配工具,可用于从字符串中提取数字。以下正则表达式将匹配字符串中的所有数字:```
import re
pattern = r"\d+"
string = "This is a string with numbers 123 and 456."
# 使用 findall() 方法提取所有匹配的数字
matches = (pattern, string)
print(matches) # 输出:['123', '456']
```

还可以使用分组来提取特定位置的数字,例如:```
pattern = r"(\d+)-(\d+)-(\d+)"
string = "The date is 2023-03-17."
# 使用 findall() 方法提取匹配的组
matches = (pattern, string)
print(matches) # 输出:[('2023', '03', '17')]
```

2. 内建函数

Python 提供了一些内建函数可用于从字符串中提取数字。最常见的函数是 int() 和 float():```
string = "The number is 12.34."
# 使用 int() 提取整数
number_int = int(string)
print(number_int) # 输出:12
# 使用 float() 提取浮点数
number_float = float(string)
print(number_float) # 输出:12.34
```

int() 函数还可以使用可选的 base 参数将字符串转换为不同基数的整数。例如:```
string = "0b101010"
# 使用 int() 和 base=2 将二进制字符串转换为整数
number_binary = int(string, base=2)
print(number_binary) # 输出:42
```

3. 第三方库

对于更高级的数字提取任务,可以使用 NumPy 或 Pandas 等第三方库。NumPy 提供了一个 fromstring() 函数,可以将字符串转换为数字数组。Pandas 提供了一个 read_csv() 函数,可以从 CSV 文件中提取数字。```python
import numpy as np
string = "1,2,3,4,5"
# 使用 NumPy 的 fromstring() 将逗号分隔的字符串转换为数组
array = (string, sep=",")
print(array) # 输出:array([1, 2, 3, 4, 5])
```

总之,从 Python 字符串中提取数字有多种方法,包括正则表达式、内建函数和第三方库。选择最适合特定任务的方法取决于数据的格式和所需的操作。

2024-10-24


上一篇:Python 数据库编程指南

下一篇:Python 文件读写:深入浅出的指南