python删去数字字符_删除数字字符串python

参见英文答案 > Remove specific characters from a string in Python                                    25个

对于我的赋值,我必须创建一个函数,该函数返回一个与给定字符串相同但删除了数字的新字符串.

示例:删除数字(‘abc123′)将返回字符串’abc’.

我已经尝试了几乎所有我能想到的但是它不能正常工作:(

def test(str):

for ch in str:

num = ['0', '1', '2', '3', '4', '6', '7', '8', '9']

if ch == num[0]:

return str.replace(ch, '')

elif ch == num[1]:

return str.replace(ch, '')

elif ch == num[2]:

return str.replace(ch, '')

elif ch == num[3]:

return str.replace(ch, '')

elif ch == num[4]:

return str.replace(ch, '')

elif ch == num[5]:

return str.replace(ch, '')

elif ch == num[6]:

return str.replace(ch, '')

elif ch == num[7]:

return str.replace(ch, '')

elif ch == num[8]:

return str.replace(ch, '')

我输入test(‘abc123′),期望输出为’abc’.但我得到’abc23’作为我的输出.

在其他尝试中,同样的问题:

def test(str):

for char in str:

num = ['0', '1', '2', '3', '4', '6', '7', '8', '9']

if char in list(num):

return str.replace(char, '', len(str))

我得到了相同的结果.

谁能帮我?这将不胜感激.

解决方法:

使用正则表达式

import re

def test(str):

string_no_numbers = re.sub("\d+", " ", str)

print(string_no_numbers)

test('abc123') #prints abc

标签:python,string

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值