筛出字符串中的数字字符pta
时间: 2024-12-31 17:14:42 浏览: 9
### 使用 Python 提取字符串中的数字
#### 方法一:使用 `isdigit()` 函数
对于简单的场景,可以直接遍历字符串并利用 `isdigit()` 来判断字符是否为数字。此函数返回 True 如果所有的字符都是数字,并且至少有一个字符;否则返回 False。
```python
input_str = "abc123def456"
digits = ''.join([char for char in input_str if char.isdigit()])
print(digits) # 输出 '123456'
```
这种方法适用于只关心纯阿拉伯数字的情况[^1]。
#### 方法二:使用正则表达式
当面对更复杂的模式时,比如需要处理带符号的小数或负数,则推荐采用正则表达式的方案。通过导入 `re` 模块来实现:
- **获取所有整数**
```python
import re
string = "#$1.23,zimu3,520.1314, 300"
integers = re.findall(r'\b\d+\b', string)
print(integers) # 输出 ['3', '300']
```
- **获取所有数值(含小数)**
若要同时捕获浮点数和整数,可调整正则表达式如下所示:
```python
numbers_with_decimal = re.findall(r'-?\d+\.?\d*', string)
print(numbers_with_decimal) # 输出 ['1.23', '3', '520.1314', '300']
```
这里 `-?` 表示可能存在的负号,`\d+` 至少一位以上的数字,而 `\.` 则表示实际的小数点位置[^3]。
阅读全文