使用python删除@ mentions,URL和#符号

时间:2019-06-19 02:23:04

标签: python regex python-3.x

尝试使用python从Twitter数据中删除@提及,URL和#符号。 获取

"word john# word".replaceAll("\\bjohn#","fill") // word fill word

来自

lets take action! fitness health 

代码:

@BBCNews lets take action! #fitness #health https://www.url.com

但是这会产生“让我们采取行动!”,我很难修复我的正则表达式,但是我想我已经接近了。如何修复我的正则表达式?

1 个答案:

答案 0 :(得分:2)

您的模式不正确,因为您还指定了在\S+字符之后删除#字符。而是将模式更改为

>>> re.sub(r'(@|https?)\S+|#', '', text)
' lets take action! fitness health '

正则表达式细分

(@       # match '@'
 |       # OR
 https?  # "http" or "https", followed by...
)
\S+      # one or more characters that aren't whitespace
|        # OR
#        # hashtag

作为奖励,第三方3 {sup> rd tweet-processor模块提供了大多数现成的功能,并带有可选的自定义项。

import preprocessor as p

p.clean(text)
# 'lets take action!'

# customise what you want removed
p.set_options(p.OPT.MENTION, p.OPT.URL,)
p.clean(text)
# 'lets take action! #fitness #health'

p.clean(text).replace('#', '')
# 'lets take action! fitness health'