为什么python 3给了我"expected string or buffer"



尝试regexmagic,我想用null替换文件中的一堆字符(即删除它们(。我在文件中以字符串的形式读取。这是一个字符串,因为我可以将其打印为字符串,并且"在"中使用它。

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。

这是因为您没有指定要修改的字符串。如果要用字符串s中的替换""替换模式"(?:®NT|¯+ _®MD+SD|®MD-SD¯)",并指定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

相关内容

最新更新