Visual Basic替换文本文件的一部分

时间:2015-02-18 19:28:00

标签: vb.net visual-studio-2013

Referencing this answer to a very similar question我想知道如何扩展此代码以充当搜索占位符并修改其后的文本:

Dim fileReader As String = My.Computer.FileSystem.ReadAllText("C:\test.txt").Replace("Number Remaining: [oldvalue]", "Number Remaining: [newvalue]")
My.Computer.FileSystem.WriteAllText("C:\test2.txt", fileReader, False)

其中oldvalue是编辑前剩余的数字(我不总是知道,所以不能在搜索中包含它),而newvalue是一个在其他地方计算的值。代码。

值均为Double类型。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:1)

您可以使用简单的正则表达式来匹配一个简单的数字。

首先,将System.Text.RegularExpressions添加到文件顶部的导入中。

Imports System.Text.RegularExpressions

然后你可以使用这样的东西:

Dim newValue As Double = 12.34 'or whatever
Dim fileText As String = My.Computer.FileSystem.ReadAllText("C:\test.txt")
fileText = Regex.Replace(fileText,
                         "Number Remaining: [0-9]+(\.[0-9]+)?", 
                         string.Format("Number Remaining: {0}", newValue))
My.Computer.FileSystem.WriteAllText("C:\test2.txt", fileText, False)

正则表达式[0-9]+(\.[0-9]+)?表示数字([0-9]),1次或多次(+),可选(?)后跟一个点(\.和)更多的数字。

如果您的号码格式可能不同,则必须调整正则表达式以适应。