如何在Python中从字符串中删除所有以“:”结尾的单词?

7
我想知道如何在Python中从字符串中删除动态单词。
该单词总是以“:”结尾,并且字符串中有时会有多个。我希望删除所有出现的“word:”。
谢谢! :-)

什么是“动态词”? - Anderson Green
3个回答

13

使用正则表达式。

import re
blah = "word word: monty py: thon"
answer = re.sub(r'\w+:\s?','',blah)
print answer

这也会在冒号后面提取一个可选的单个空格。


@veb 一份更友好的Python正则表达式入门指南:http://www.amk.ca/python/howto/regex/ - Jacinda
@veb:欢迎来到SO。如果发布的答案是你要找的,点击复选框图标以“接受”它。 - Seth Johnson
它告诉我等待7分钟,所以我正在等待。嘿。 - veb
啊,好的。我不知道那个限制,可能是新的。谢谢! - Seth Johnson

0

这将删除所有以“:”结尾的单词:

def RemoveDynamicWords(s):
    L = []
    for word in s.split():
        if not word.endswith(':'):
            L.append(word)
    return ' '.join(L)
print RemoveDynamicWords('word: blah')

或者使用生成器表达式:

print ' '.join(i for i in word.split(' ') if not i.endswith(':'))

@David:那不是生成器表达式,那是列表表达式。 - Seth Johnson

0
[ chunk for chunk in line.split() if not chunk.endswith(":") ]

这将创建一个列表。您可以在之后将它们连接起来。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接