Python 3正则表达式:删除所有标点符号,特殊单词模式除外

问题描述 投票:-1回答:1

我有此文本格式-ABC_ABC--ABC--ABC_ABC_ABC-] >>

我的正则表达式模式:

([\-]+[A-Z]+(?:[\_]?[A-Z])+[\-]+)

我想删除除上述模式以外的所有字符串标点符号。我可以在这种情况下使用正则表达式替换吗?

输入字符串:

Lorem Ipsum, simply dummy text -TOKEN_ABC-, yes! 

期望:

Lorem Ipsum simply dummy text -TOKEN_ABC- yes 

我已经完成了if方法的使用,但是感觉效率较低,因为我必须检查每个单词。

sentence_list=[]
for word in text:
    if re.match(r"([-][A-Z]+(?:[_]?[A-Z]*[-]))", word.text):
        sentence_list.append(word.text)
    else:
        text2 = re.sub(r"([^\w\s]|[\-_])", r"", word.text)
        sentence_list.append(text2)
return " ".join(sentence_list)

我有此文本模式-ABC_ABC-或-ABC-或-ABC_ABC_ABC-我的正则表达式模式:([\-] + [AZ] +(?:[\ _]?[AZ])+ [\-] + )除上述模式外,我想删除所有字符串标点。我可以使用正则表达式...

python regex python-3.x punctuation
1个回答
1
投票

使用regex模块而不是带动词re(*SKIP)(*FAIL)

© www.soinside.com 2019 - 2024. All rights reserved.