从字符串中删除标点符号;在行尾的特定 3 个点(省略号)中使用 python

Remove punctuation from the string; in specific 3 dots (ellipses) at the end of the line using python

我有一个 python 脚本可以清理上传的数据框。其中一个函数是从字符串中删除标点符号,该函数适用于字符串中的所有标点符号 除了行尾的 [...] 3 个点或省略号

在示例 1 中,该函数正常工作,而在示例 2 中,它保留了字符串末尾的 3 个点。

======

import re
from string import punctuation
    ppt = '''...!@#$%^&*()....{}[]|._-`/?:;"'\,~12345678876543''' 

    def processTweet(tweet):
        '''
        parameters:
        ====================
        - tweets: list of text 
       
        functions:
        ====================
        - Remove HTML special entities (e.g. &)
        - Convert @username to AT_USER
        - Remove tickers
        - convert to lowercase
        - Remove hyperlinks
        - Remove hashtags
        - Remove Punctuation and split 's, 't, 've with a space for filter
        
        '''
        # Remove HTML special entities (e.g. &)
        tweet = re.sub(r'\&\w*;', '', tweet)
        #Convert @username to AT_USER
        tweet = re.sub('@[^\s]+','',tweet)
        # Remove tickers
        tweet = re.sub(r'$\w*', '', tweet)
        # To lowercase
        tweet = tweet.lower()
        # Remove hyperlinks
        tweet = re.sub(r'https?:\/\/.*\/\w*', '', tweet)
        # Remove hashtags
        tweet = re.sub(r'#\w*', '', tweet)
        # Remove Punctuation and split 's, 't, 've with a space for filter
        tweet = re.sub(r'[' + ppt.replace('@', '') + ']+', ' ', tweet)
        return tweet

如果是@JvdV指出的省略号,

tweet = tweet.replace('\u2026','')

这将删除所有省略号。