Python 删除一大串特殊字符
我想从我的文档中删除以下每个特殊字符:Python 删除一大串特殊字符,python,regex,Python,Regex,我想从我的文档中删除以下每个特殊字符: symbols = {`,~,!,@,#,$,%,^,&,*,(,),_,-,+,=,{,[,],},|,\,:,;,",<,,,>,.,?,/} 就是这样,对于用波兰语等语言编写的文档,我也删除了许多(重音/特殊)字母 如何在一个表达式中删除上面的每个特殊字符?如果有要删除的符号列表,可以构造以下简单的正则表达式: rgx = '|'.join(map(re.escape, symbols)) 示例: # example symb
symbols = {`,~,!,@,#,$,%,^,&,*,(,),_,-,+,=,{,[,],},|,\,:,;,",<,,,>,.,?,/}
就是这样,对于用波兰语等语言编写的文档,我也删除了许多(重音/特殊)字母
如何在一个表达式中删除上面的每个特殊字符?如果有要删除的符号列表,可以构造以下简单的正则表达式:
rgx = '|'.join(map(re.escape, symbols))
示例:
# example symbols list
symbols = ['"', '<', '+', '*']
document = '<div prop="+*+">'
rgx = '|'.join(map(re.escape, symbols))
document = re.sub(rgx, '', document)
print(document)
div prop=>
代码'|'.join(map(re.escape,symbols))
将构造以下正则表达式:
\"|\<|\+|\*
\“| \不使用正则表达式,您可以通过以下方法解决此问题:
symbols={“`”、“~”、“!”、“@”、“#”、“$”、“%”、“^”、“&”、“*”、“(”、“”)、““、“-”、“+”、“=”、“{”、“[”、“]”、“}”、“|”、“\\”、“:“、”、“;”、“\”、“\”、“、“?”、“/”}
对于符号中的c:
文件=文件。替换为(c,“”)
符号=['a'、'b'、'|']
document=document.translate({ord(c):符号中的c无})
如果您想逐字删除每个字符,可以使用str.replace
和模块:
'345lwegm34mf'
如果您需要更多的符号来替换(string.标点符号
等于'!“\$%&\'()*+,-./:;?@[\]^
{124;}~”),您可以将它们添加到`string.中的
,而无需重新:
"".join(str(x) for x in document if x not in symbols)
@DeveshKumarSingh,谢谢你的回答,但我不知道这到底意味着什么。你能给我一个例子或我的问题的完整答案吗?@DeveshKumarSingh,它也可以是任何具有这些特殊字符的文本(就像许多文本一样)。您可以很容易地自己创建一个。@deveshkumarsing不会出现任何混乱-我们不要浪费时间-下面的其他人已经给出了答案。如果您无法找到任何文本(有多困难?),请回答:(Hello World)]*!
应该是Hello World
老实说,我终于开始考虑使用.replace()
由于这里提到的原因,正则表达式也比正则表达式好:@PoeteMaudit,你应该在真正需要的情况下应用正则表达式。在这种特殊情况下,你有另一种解决方案。你也可以检查基准来回答。当然,问题是我不确定什么时候真的需要正则表达式。有什么具体的建议吗se?老实说,我不确定regex的意义是什么,尽管.replace()存在,但另一方面,我看到很多人使用前者。@PoeteMaudit,有。顺便说一句,既然你愿意回答这些问题,为什么不在这种情况下使用str.translate()?在regexs中,什么时候使用str.translate()也是同样的问题何时使用str.replace()?
symbols = {"`", "~", "!", "@", "#", "$", "%", "^", "&", "*", "(", ")", "_", "-", "+", "=", "{", "[", "]", "}", "|", "\\", ":", ";", "\"", "<", ",", ">", ".", "?", "/"}
for c in symbols:
document = document.replace(c, "")
a = '345l,we.gm34mf,]-='
for char in string.punctuation:
a = a.replace(char, '')
a
"".join(str(x) for x in document if x not in symbols)