Vb.net Visual Basic 2013字符串替换
我发现这段代码替换了文本文件中的字符串。但是,我正在尝试使它能够替换文本文件中的几个字符串Vb.net Visual Basic 2013字符串替换,vb.net,visual-studio,Vb.net,Visual Studio,我发现这段代码替换了文本文件中的字符串。但是,我正在尝试使它能够替换文本文件中的几个字符串 My.Computer.FileSystem.WriteAllText("C:\windows\PrinterList2.txt", My.Computer.FileSystem.ReadAllText("C:\windows\PrinterList.txt").Replace("IT", "ADM-IT"), False) 例如,我需要它将“it”替换为“ADM-it”,将“AR”替换为“AD
My.Computer.FileSystem.WriteAllText("C:\windows\PrinterList2.txt", My.Computer.FileSystem.ReadAllText("C:\windows\PrinterList.txt").Replace("IT", "ADM-IT"), False)
例如,我需要它将“it”替换为“ADM-it”,将“AR”替换为“ADM-AR”,可能还需要100多个
我怎样才能让它循环来完成这些任务?反复运行这行代码只会用最后一项替换文件
提前感谢。
Replace
返回一个字符串
,因此,您可以在最后随意链接更多的Replace
调用。查看MSDN中的签名,似乎可以指定要替换的子字符串的出现次数
您还需要记住的是,Replace(..)函数将返回一个字符串
,您可以继续替换该字符串,直到完成为止
如果需要将所有“X”替换为“Y”,则在下面的for循环中添加另一个循环以调用Replace(X,Y)
,直到当前替换的字符串与前一个匹配为止(这可能是幼稚的,效率不高)
下面是一些伪代码(不太喜欢VB:():
如果只有两个字符串要替换,则可以使用如下内容:
Imports System.IO
File.WriteAllText("C:\windows\PrinterList2.txt",
File.ReadAllText("C:\windows\PrinterList.txt").
Replace("IT", "ADM-IT").
Replace("AR", "ADM_AR"), False)
如果不止几个,这将不是非常有效。这种方法的另一个问题是,每次出现的IT和AR都将被替换,即使它们碰巧使用了另一个单词。例如,“STAR”一词将变成“STADM_AR”因此,考虑这是否会成为你的问题。你的链接转到VB <代码>替换< /COD>方法。不应该使用遗留的VB方法,它们是向后兼容的。SabHiRAM有正确的想法。很多取决于替换字符串的数据结构。你很可能需要找到一种方法来分隔ST。响铃,这样您就不会意外地替换字符串。例如,如果您需要替换“IT”和“IT2”,如果您先替换“IT”,则“IT2”可能会被销毁。如果您的目标字符串在文件中可能不是唯一的,并且在一行/行中是唯一的,则您可能希望迭代这些行并对每行运行所有替换。
Imports System.IO
File.WriteAllText("C:\windows\PrinterList2.txt",
File.ReadAllText("C:\windows\PrinterList.txt").
Replace("IT", "ADM-IT").
Replace("AR", "ADM_AR"), False)