正则表达式python删除冒号和下划线

时间:2017-05-10 13:47:21

标签: python regex

我有一种方法可以清除我从网上获得的推文,但是我想修改它以便保留冒号和下划线。我在python中读取了documentation的正则表达式,似乎re.sub方法首先在" tweet"中找到模式,然后用空格替换它。变量。我仍然不太明白第一部分,它指定了要找到的模式我理解一些基础知识,比如^正在发现某些事情是从某事开始的,我试图取出最后一部分(\w+:\/\/\S+)完全认为结肠是来自,但它仍然删除冒号。有人可以解释模式发现部分的每个3部分的作用吗?

' '.join(re.sub("(@[A-Za-z0-9]+)|([^0-9A-Za-z \t])|(\w+:\/\/\S+)", " ", tweet).split())

1 个答案:

答案 0 :(得分:0)

^字符在regexp中有两个含义。它可以是字符串的开头,如果在括号([]之间),它可以表示“不”。在这种情况下,它表示不是,这意味着删除了该表达式中未特别提及的所有字符。要让删除冒号(:),你应该将它添加到中间(非)组:

' '.join(re.sub("(@[A-Za-z0-9]+)|([^0-9A-Za-z \t:])|(\w+:\/\/\S+)", " ", tweet).split())

进一步解释;第一组删除@ -ferences到其他人,第二组删除除空格和制表符(现在冒号)之外的所有非字母数字,最后一组删除互联网地址等(例如,盯着“http://”或“文件” ://“或类似的。”