我有一个文本列表,可以用类似于:re.sub('0000', '1111',data)
的文本列表来重新定义。
对于shell中的一个输入,用\1\4\2\3
替换模式^(.{4})(.{4})(.{3})(.{3})
工作也很好。但是,我尝试在列表中使用此模式时
第一排出现不良结果,切勿更换车床。我错过了什么?
"0000-22N-06W-01"
"0000-22N-06W-02"
"0000-22N-06W-03"
"0000-22N-06W-04"
import re
o = open("output.txt","w")
data = open("input.txt").read()
o.write(re.sub(r'^(.{4})(.{4})(.{3})(.{3})', r'\1\4\2\3',data))
o.close()
如果仍要使用
.read()
,请尝试以下操作:这个?以下内容:
产生
很久以前,我花了1个小时才明白,regex表达式需要在
flags=
之后编写re.M
,因为re.sub的签名是re.sub(pattern, repl, string, count=0, flags=0)
注意:如果您的数据中确实有
"
,那么您应该将正则表达式更改为:Regex101 Demo
相关问题 更多 >
编程相关推荐