我有一个包含六行的文件,如下所示:
a1
b1
c1
d1
e1
f1
要求是,输出需要如下。简单地说,上面的行中的小写字母需要用“AA”和“AB”代替,每次三次。
AA1
AA1
AA1
AB1
AB1
AB1
我一直在使用以下代码来实现这一目标:
For each line in File.ReadLines(path)
For i as integer = 1 to 3
fOut.WriteLine(Regex.replace(line, regex, replacementString(matchCount)))
Next
Next
函数replacementString(matchCount)返回“AA”或“AB”,具体取决于传递的参数。 我使用“for”循环迭代替换String(AA或AB)三次。但是,随着替换字符串,该行也被三次循环,并被写入文件三次。我没有得到六行作为输出,而是输出了18行。
我无法解决如何使内部for循环仅针对replacementString()而不是针对该行执行。我是编程新手,想知道是否有办法实现这一点。
以上代码只是举例说明我的问题。在实际情况中,我在一个文件中面对数百行的问题,需要用AA ..... ZZ代替。我无法发布我的原始代码。
答案 0 :(得分:0)
你不能用这种方式交织两个For
循环。构造类似这样的东西的最简单方法是通过循环“手动”进行内部循环的循环:
Dim i as Integer = 0
For Each line in File.ReadLines(path)
fOut.WriteLine(Regex.replace(line, regex, replacementString(i + 1)))
i = (i + 1) Mod 3
Next
注意:我假设matchCount
和i
实际上是您实际代码中的相同变量。我没有看到你的代码如何有意义。