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

Visual Basic Replacing Part Of A Text File

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 类型。

如有任何帮助,我们将不胜感激。

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

首先,将 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 次或多次 (+),可选 (?) 后跟一个点 (\.) 和更多数字。

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