我想在不丢失字符串中字母数字单词的数字的情况下删除数值。
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'