首页 > 解决方案 > 什么正则表达式将删除@的实例,后跟python中的任何字符(空格除外)?

问题描述

我有以下数据框:

corpus = pd.DataFrame({"tweet":["@blah Check tihs out @hay! This bear loves jumping on this plant!", 
          "I can't bear the noise from that power plant. It makes me jump."]})

...我想删除用户提及的内容,即“@blah”和“@hay”

我尝试了以下正则表达式,但这只是删除了“@”:

corpus["tweet"] = [re.sub(r'^@.*\s+$',' ', str(tweet)) for tweet in corpus["tweet"]]

我需要使用什么正则表达式来删除整个用户名而不仅仅是@?

标签: pythonregextwitter

解决方案


这将删除 @ 后跟一个或多个非空白字符。

使用\s*, 之后它还会删除空格(不是严格意义上的问题,但可能是有意的),否则 @提及之前和之后的空格将在输出中最终成为双倍空格。

re.sub(r'@\S+\s*', '', str(tweet))

推荐阅读