如何替换 Python 中字符串中的数字?
How to replace a number in a string in Python?
我需要搜索一个字符串并检查它的名称中是否包含数字。如果是这样,我想用任何东西替换它。我已经开始做类似的事情,但我没有找到解决问题的办法。
table = "table1"
if any(chr.isdigit() for chr in table) == True:
table = table.replace(chr, "_")
print(table)
# The output should be "table"
有什么想法吗?
您可以通过多种不同的方式做到这一点。下面是如何使用 re 模块完成的:
import re
table = 'table1'
table = re.sub('\d+', '', table)
table = "table123"
for i in table:
if i.isdigit():
table = table.replace(i, "")
print(table)
这听起来像是 str
的 .translate
方法的任务,你可以做
table = "table1"
table = table.translate("".maketrans("","","0123456789"))
print(table) # table
2 maketrans
的第一个参数用于替换 character-for-character,因为我们不需要它,我们使用空 str
s,第三个(可选)参数是要删除的字符。
我发现这可以快速删除数字。
table = "table1"
table_temp =""
for i in table:
if i not in "0123456789":
table_temp +=i
print(table_temp)
如果您不想导入任何模块,您可以尝试:
table = "".join([i for i in table if not i.isdigit()])
char_nums = [chr for chr in table if chr.isdigit()]
for i in char_nums:
table = table.replace(i, "")
print(table)
我需要搜索一个字符串并检查它的名称中是否包含数字。如果是这样,我想用任何东西替换它。我已经开始做类似的事情,但我没有找到解决问题的办法。
table = "table1"
if any(chr.isdigit() for chr in table) == True:
table = table.replace(chr, "_")
print(table)
# The output should be "table"
有什么想法吗?
您可以通过多种不同的方式做到这一点。下面是如何使用 re 模块完成的:
import re
table = 'table1'
table = re.sub('\d+', '', table)
table = "table123"
for i in table:
if i.isdigit():
table = table.replace(i, "")
print(table)
这听起来像是 str
的 .translate
方法的任务,你可以做
table = "table1"
table = table.translate("".maketrans("","","0123456789"))
print(table) # table
2 maketrans
的第一个参数用于替换 character-for-character,因为我们不需要它,我们使用空 str
s,第三个(可选)参数是要删除的字符。
我发现这可以快速删除数字。
table = "table1"
table_temp =""
for i in table:
if i not in "0123456789":
table_temp +=i
print(table_temp)
如果您不想导入任何模块,您可以尝试:
table = "".join([i for i in table if not i.isdigit()])
char_nums = [chr for chr in table if chr.isdigit()]
for i in char_nums:
table = table.replace(i, "")
print(table)