不要打扰我

2024-06-26 00:08:05 发布

您现在位置:Python中文网/ 问答频道 /正文

如果我有

phrase="Boeing777 is very fast because it can goes to 950 kms/hours"

我的想法是只去掉950,因为他是唯一的一个数字,但我不想从波音公司去掉777。 我有:

exclude=set('0123456789')
print("".join(ch for ch in phrase if ch not in exclude))

Boeing is very fast because it can goes to  kms/hours

我想:

Boeing777 is very fast because it can goes to  kms/hours

Tags: toinisitchcanexcludevery
1条回答
网友
1楼 · 发布于 2024-06-26 00:08:05

要完全按照要求执行操作,可以使用正则表达式,例如:

import re

phrase="Boeing777 is very fast because it can goes to 950 kms/hours"

print re.sub(r'\s\d+\s', ' ', phrase)

它将一个或多个(+)数字(\d)周围的任何空格(\s)模式替换为字符串' '

取决于您希望它的复杂程度,您可以改进该正则表达式

例如,你可能想考虑关于短语

你想做什么。

phrase="Boeing777 is very fast. it's top speed is 950."

因为950后面跟着一个.,所以需要一个不同的正则表达式。这就是我在快速浏览时想到的:

re.sub(r'(?<=\s)(\d+)(?=\s|\.|,|$)', '', phrase)

这会检查之前是否有空格,之后是否有空格、句点或逗号,但显然还有改进的余地。不知道你的实际需求,我将把它留给你

相关问题 更多 >