如何使用python re搜索和替换多个正则表达式

如何使用python re搜索和替换多个正则表达式,python,regex,Python,Regex,可能重复: 我想用,,,,,,,,,,,(单引号)和,,(双引号)替换为,,,和,, 这将由re.search处理,因为我希望能够搜索文本中的任何位置,还是使用re.sub 处理这个问题的最佳方法是什么?我已经找到了比特和片段,但没有找到处理多个正则表达式的地方。如果要删除所有出现的字符,只需将它们全部放在一个字符类中,然后执行以下操作 您必须为每个替换规则调用re.sub() import re reg = re.compile('([ \r\n\'"]+)|([;|]+)') ss =

可能重复:

我想用
(单引号)和
(双引号)替换为

这将由
re.search
处理,因为我希望能够搜索文本中的任何位置,还是使用
re.sub


处理这个问题的最佳方法是什么?我已经找到了比特和片段,但没有找到处理多个正则表达式的地方。

如果要删除所有出现的字符,只需将它们全部放在一个字符类中,然后执行以下操作

您必须为每个替换规则调用
re.sub()

import re

reg = re.compile('([ \r\n\'"]+)|([;|]+)')

ss = 'bo ba\rbu\nbe\'bi"by-ja;ju|jo'

def repl(mat, di = {1:'',2:','}):
    return di[mat.lastindex]

print reg.sub(repl,ss)

注意:“|”在括号中失去其特殊性

如果只需要替换单个字符,则可以使用:

导入字符串
table=string.maketrans(“;|”、“,”)
deletechars='\r\n\''
打印“ex'a;m | ple\n”。翻译(表格,删除字符)
#->exa,m,ple

如果要将一个常量字符串替换为另一个常量字符串,则无需使用正则表达式。您是从某个地方复制/粘贴了这些引号,还是在浏览器的文本框中键入了匹配的引号?当然是复制和粘贴了,您的字符串将是字符类的实例?不确定这是什么意思“把它们都放在一个字符类中,阅读更多信息。这是基本的正则表达式内容。+1,因为我想在括号后加上“+”(我忘了)哦,是的!这就是要做的!
import re

reg = re.compile('([ \r\n\'"]+)|([;|]+)')

ss = 'bo ba\rbu\nbe\'bi"by-ja;ju|jo'

def repl(mat, di = {1:'',2:','}):
    return di[mat.lastindex]

print reg.sub(repl,ss)
import string

table = string.maketrans(';|', ',,')
deletechars = ' \r\n<>\'"'

print "ex'a;m|ple\n".translate(table, deletechars)
# -> exa,m,ple