如何从Python中的字母数字字符串中删除数字

问题描述 投票:0回答:4

一个字符串由字母和数字组成。例如 1256Ab79。

我们必须从字符串中删除出现的 56 和 7。

输入:

1256Ab79

输出:

12Ab9

输入:

a567Eq79

输出:

aEq9

我尝试了 .isdigits() 函数,但我无法解决这个问题

python python-3.x
4个回答
3
投票

您可以将 2 个

str.replace()
链接在一起。对于这个具体且非常简单的案例:

>>> s = '1256Ab79'
>>> s.replace('56', '').replace('7', '')
'12Ab9'
>>> s = 'a567Eq79'
>>> s.replace('56', '').replace('7', '')
'aEq9'

第一个

replace()
将子字符串
'56'
的任何实例替换为空字符串,从而有效地将其删除。同样,第二个从字符串中删除
'7'
。请注意,我们可以将多个调用
replace()
链接在一起,因为
replace()
返回修改后的字符串。

如果您需要更复杂的替换,或者有很多可能的目标字符串,那么您可以查看

re.sub()
并从可能的目标字符串列表动态构造正则表达式模式。


1
投票

正则表达式可用于此目的:

import re
re.sub(r'\W+', '', your_string)

根据 Python 定义...

'\W == [^a-zA-Z0-9_]
,这将排除所有数字、字母和 _


0
投票

您可以尝试将

re.sub()
与正则表达式
56|7

一起使用
import re

word = '1256Ab79'
re.sub(r'56|7', '', word)
12Ab9

0
投票

重新导入

数据='34378dfjjbdsj342' 结果 = re.sub(r'[^\d.]', '', 数据)

© www.soinside.com 2019 - 2024. All rights reserved.