删除字符串中的数字,同时保留字母数字单词



我想在不丢失字符串中字母数字单词的数字的情况下删除数值。

String = "Jobid JD123 has been abended with code 346"
Result = "Jobid JD123 has been abended with code"

我正在使用以下代码:

result = ''.join([i for i in String if not i.isdigit()])

它给我的结果是‘Jobid JD has been abended with code

我们是否可以删除只包含数字的单词,同时保留那些包含字母和数字混合的单词?

您可以使用regex在两个单词边界b之间查找一个或多个数字d+的运行,并将其替换为零。

>>> import re
>>> string = "Jobid JD123 has been abended with code 346"
>>> re.sub(r"bd+b", "", string).strip()
'Jobid JD123 has been abended with code'

注意,正则表达式没有去掉尾部空格(在"code"和数字之间(,因此您需要strip()re.sub()的结果。

使用.isnumeric()删除任何不包含数字的单词:

s = "Jobid JD123 has been abended with code 346"
result = ' '.join(c for c in s.split() if not c.isnumeric())
print(result)

该输出:

Jobid JD123 has been abended with code 

split将字符串转换为单词,并检查整个单词是否为数字

Result = " ".join(word for word in String.split() if not word.isnumeric())
>>> Result
'Jobid JD123 has been abended with code'

最新更新