
python如何只留下数字
用户关注问题
如何在Python中提取字符串中的数字?
我有一个包含字母和数字的字符串,想要提取其中所有的数字,该怎么做?
使用正则表达式提取数字
可以使用Python的re模块,通过正则表达式\d+来匹配字符串中的数字。例如:
import re
s = 'abc123def456'
numbers = re.findall(r'\d+', s)
print(numbers) # 输出 ['123', '456']
这样可以获取字符串中所有连续的数字部分。
如何在Python字符串中只保留数字字符?
我想把字符串中的所有非数字字符移除,只留下数字部分,有没有简单的方法?
使用字符串过滤和isdecimal方法
可以通过列表推导式结合字符串的isdecimal()或isdigit()方法来实现:
s = 'a1b2c3d4'
numbers_only = ''.join([ch for ch in s if ch.isdecimal()])
print(numbers_only) # 输出 '1234'
这种方法会构造一个只包含数字字符的新字符串。
除了正则表达式,还有哪些方法可以保留字符串中的数字?
我不太熟悉re模块,想知道还有没有其他方便的方式实现只保留数字的功能?
利用filter函数结合str.isdigit方法
Python的filter函数也能达到目的,示例如下:
s = 'abc123xyz456'
numbers_only = ''.join(filter(str.isdigit, s))
print(numbers_only) # 输出 '123456'
用filter和str.isdigit函数过滤出数字字符,再连接成字符串。