python如何提取字符串中的数字?
时间: 2024-09-21 13:10:52 浏览: 86
在Python中,可以使用内置函数和正则表达式库`re`来提取字符串中的数字。以下是几种常见的方法:
1. **简单匹配** 如果字符串中只包含整数,你可以使用`isdigit()`函数:
```python
def extract_numbers(s):
return ''.join([i for i in s if i.isdigit()])
s = "abc123def456"
print(extract_numbers(s)) # 输出: 123456
```
2. **正则表达式** 更复杂的情况下,可以使用`re.findall()`或`re.search()`函数配合`\d+`模式来匹配连续的数字:
```python
import re
def extract_numbers_regex(s):
pattern = r'\d+' # 匹配一串数字
return [int(num) for num in re.findall(pattern, s)]
s = "my phone number is 1234567890"
print(extract_numbers_regex(s)) # 输出: [1234567890]
```
这里假设输入的字符串中的数字都是可转换为整型的。
相关问题
python提取字符串中数字
可以使用正则表达式来提取字符串中的数字。例如:
```
import re
s = "abc123def456ghi789"
nums = re.findall(r'\d+', s)
print(nums) # ['123', '456', '789']
```
在这个例子中,使用`re.findall(r'\d+', s)`来找到字符串`s`中的所有数字。`\d+`表示匹配一个或多个数字。`re.findall()`函数可以返回所有匹配的结果。
python提取字符串中数字并求和
可以使用正则表达式来提取字符串中的数字,然后将其转换为整数并求和。以下是示例代码:
import re
s = "abc123def456ghi789"
nums = re.findall(r'\d+', s)
sum = 0
for num in nums:
sum += int(num)
print(sum)
输出结果为:1367
阅读全文