【发布时间】:2019-11-29 02:09:05
【问题描述】:
问题: 我想以高级方式批量替换文件中的模式,所以我不能使用任何标准的搜索和替换工具:
假设有文件 1:
B
B
A
B
B
B
A
B
B
A
B
我想用别的东西代替 B。但只有每个 B,都在 A 之后。
这是文件2,其中包含“规则”,如何搜索和替换:
A;B;C1
A;B;C2
A;B;C3
“;”应该是分隔符。可以是其他任何东西。 脚本应该搜索and A。然后继续搜索B。然后用C1 替换那个B。 然后继续到下一个出现的A。搜索下一个B并将这个B替换为C2。等等。 当脚本将 B 替换为 C3 时,它应该停止,因为没有进一步的规则。
最终文件应如下所示:
B
B
A
C1
B
B
A
C2
B
A
C3
我想使用python,但如果有更简单的方法,这不是强制性的。
【问题讨论】:
-
请展示您到目前为止所做的尝试,并说明您遇到的具体问题。
-
我编辑了您的问题以使文件更清晰。但是现在看到输入文件中的一些
Bs前面有空格,而这些也恰好是被替换的字母。空间应该在那里吗?此外,在您的示例中,每个被替换的B都是在搜索并找到的A之后立即。这一定是这种情况吗?如果A之后的下一个B不是紧随其后怎么办?正如前面的评论所说,请展示你自己在这个问题上的一些工作,最好是尝试一些代码。 -
要搜索和替换的项目是否总是单个字符?如果搜索的项目是一行的部分而不是整行怎么办?当你说“我不能使用任何标准的搜索和替换工具”时,是不是意味着你不能使用 Python 的内置字符串运算符或方法,例如
in或replace?