Python regex删除url和十进制数以外的标点符号

2024-09-30 08:22:39 发布

您现在位置:Python中文网/ 问答频道 /正文

人们

我需要一个正则表达式来删除字符串中的标点符号,但保留重音符号和url。我还必须从字符串中保留提及和标签。在

我尝试了上面的代码,但不幸的是,它用重音符号替换了字符,但我想保留重音符号。在

import unicodedata

if __name__ == "__main__":
    text = "Apenas um teste com acentuação. Para pontuação também! #python @stackoverflow http://xyhdhz.com.br" 
    text = unicodedata.normalize('NFKD', text).encode('ascii','ignore')
    print text

以下文本的输出“Apenas um teste com acentuaço.Para pontuaço também!#python@stackoverflowhttp://xyhdhz.com.br应该是”Apenas um teste com acentuaço Para pontuaço também#python@stackoverflowhttp://xyhdhz.com.br

我怎么能那样做?在


Tags: 字符串textbrcomumparateste重音符号
1条回答
网友
1楼 · 发布于 2024-09-30 08:22:39

您可以使用Python的regex modulere.sub()来替换任何要删除的字符。您可以使用黑名单并替换所有不需要的字符,也可以使用一个包含所有允许字符的白名单,并且只保留这些字符。

这将删除括号内字符类中的任何内容:

import re

test = r'#test.43&^%à, è, ì, ò, ù, À, È, Ì, Ò, ÙÃz'
out = re.sub(r'[/.!$%^&*()]', '', test)
print(out)
# Out: #test43à è ì ò ù À È Ì Ò ÙÃz

(用python3.5测试)

为了保留url,你需要做更多的处理来检查格式(这是非常不同的)。在这种情况下,您需要什么样的输入/输出?

编辑:根据您添加的输入示例:

^{pr2}$

相关问题 更多 >

    热门问题