试用RegexMagic,我想用null替换文件中的一堆字符(即删除它们)。我在一个文件中读取了一个字符串。然后我应用了RegexMagic生成的regex表达式的略微修改版本,但我得到了“期望的字符串或缓冲区”。这是一个字符串,因为我可以将其打印为字符串,并且“在”中使用它。
f = open('y:\\prepped.txt')
s = f.read().replace('\x1A','').encode('ascii', 'xmlcharrefreplace').decode('ascii')
s = re.sub(r"(?:®NT|¯+ _®MD\+SD|®MD-SD¯)","",re.DOTALL)
print(s)
它不打印,我收到错误消息。这是Python 3.3。
答案 0 :(得分:1)
这是因为你没有指定要修改的字符串。如果您想将模式"(?:®NT|¯+ _®MD\+SD|®MD-SD¯)"
替换为字符串""
中的替换s
,并指定re.DOTALL
标记,则可以执行以下操作:
s = re.sub(r"(?:®NT|¯+ _®MD\+SD|®MD-SD¯)", "", s, flags=re.DOTALL)
使用re.sub的语法是re.sub(pattern, repl, string, count=0, flags=0)
有关详细信息,请参阅此处的文档:
https://docs.python.org/2/library/re.html