Python 从前缀为#或@的字符串中删除单词?

Python 从前缀为#或@的字符串中删除单词?,python,Python,我有这样一段文字: Hello @Simon, I had a great day today. #StackOverflow Hello, I had a great day today. 我想找到最优雅的解决方案,将其拆分为如下所示: Hello @Simon, I had a great day today. #StackOverflow Hello, I had a great day today. i、 e.我想去掉所有前缀为#和@的单词。(是的,我在查看推特) 我是pytho

我有这样一段文字:

Hello @Simon, I had a great day today. #StackOverflow
Hello, I had a great day today.
我想找到最优雅的解决方案,将其拆分为如下所示:

Hello @Simon, I had a great day today. #StackOverflow
Hello, I had a great day today.
i、 e.我想去掉所有前缀为#和@的单词。(是的,我在查看推特)

我是python新手,我可以在单个单词上这样做,但不确定在包含多个单词的字符串上实现这一点的最佳方法

我的第一个想法是使用replace,但这只会去掉实际的@和#符号寻找去除前缀为#或@的单词的最佳方法。

-编辑-
不确定这是否会使给出的答案无效,但为了让大家接受,我还需要去掉多个单词中前缀为#或$的部分。e、 g.hello#hiya#ello

编写一个匿名函数并将其放入筛选语句就很简单了

' '.join(filter(lambda x: x[0] not in ['@','#'], tweet.split()))

这将丢失@users或#topics上的逗号,但如果您只是处理tweet,您可能不会错过它。

只需编写一个匿名函数并将其放入筛选语句中即可

' '.join(filter(lambda x: x[0] not in ['@','#'], tweet.split()))
这将丢失@users或#主题上的逗号,但如果您只是处理推文,您可能不会错过它。

您可以使用:

您可以使用:

其中
s
是您的推文


其中
s
是您的推文

这有一个不幸的副作用,就是将多个空间变成一个空间。取决于应用程序,这可能无关紧要。这有一个不幸的副作用,就是将多个空格变成一个空格。取决于应用程序,这可能没关系。如果在代码的中间出现了<代码> > <代码>或<代码> > <代码>?@ MalRANSOM改进了,所以它没有。e、 g.如果两个哈希标记后面都有一个空格。看@Simon,那是因为我用了替代品而不是前瞻。现在应该是固定的。如果<代码> >代码>或<代码> >代码>发生在单词的中间,这会失败吗?@ MalRANSOM改进了,所以它没有。e、 g.如果两个哈希标记后面都有一个空格。看@Simon,那是因为我用了替代品而不是前瞻。现在应该修复。
split()
是否能够返回零长度字符串?糟糕。我确实加了一些不必要的支票。我的坏消息。
split()
能够返回零长度字符串吗?糟糕。我确实加了一些不必要的支票。我的错。