Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 替换文件中的文本?_Vb.net - Fatal编程技术网

Vb.net 替换文件中的文本?

Vb.net 替换文件中的文本?,vb.net,Vb.net,我正在成功替换文件中的文本 Dim fileReader As String = My.Computer.FileSystem.ReadAllText("C:\test.txt").Replace("foo", "bar") My.Computer.FileSystem.WriteAllText("C:\test.txt", fileReader, False) 但是,如果我不知道文本的中间部分,如何替换?比如说 示例_mybrowser.taskbar.lastgroupid,E7CF176

我正在成功替换文件中的文本

Dim fileReader As String = My.Computer.FileSystem.ReadAllText("C:\test.txt").Replace("foo", "bar")
My.Computer.FileSystem.WriteAllText("C:\test.txt", fileReader, False)
但是,如果我不知道文本的中间部分,如何替换?比如说

示例_mybrowser.taskbar.lastgroupid,E7CF176E110C211B


如何更换E7CF176E110C211B?

一种方法是使用正则表达式。您可以指定第一部分和最后一部分,然后使用\d+或更好的[0-9A-F]+匹配任何十六进制数。因此,假设您不知道的部分是十六进制数,您可以使用以下代码:

Dim fileReader As String = My.Computer.FileSystem.ReadAllText("C:\test.txt")
fileReader = System.Text.RegularExpressions.RegEx.Replace(fileReader, "[0-9A-F]+", "bar")
My.Computer.FileSystem.WriteAllText("C:\test.txt", fileReader, False)
这将用单词栏替换文件中的所有十六进制数字

请注意,对于文本文件,这种全局替换可能会产生不希望的结果。例如,即使在普通文本中,上述正则表达式也将替换字母A到F。因此,您可能需要设置一些限制,例如最小位数,以确保它只替换有效的十六进制数。例如,您可能希望使用[0-9A-F]{4,},它将只替换4个或更多连续的十六进制数字。但即使这样也不是100%安全;e、 g.它将用文字栏替换死、脸、褪色、脸等。要准确地确定什么是文件的100%安全,您需要仔细检查其内容

编辑 阅读您的评论,您可以使用以下代码:

Dim fileReader As String = My.Computer.FileSystem.ReadAllText("C:\test.txt")
fileReader = System.Text.RegularExpressions.RegEx.Replace(fileReader , "lastgroupid"", ""(.+)""\)", "lastgroupid"", ""ANYTHING_YOU_WANT""\)")
My.Computer.FileSystem.WriteAllText("C:\test.txt", fileReader, False)

这将替换lastgroupid之间所有出现的十六进制数,并使用字符串替换您想要的任何内容。

不知道中间部分是什么?我的意思是如何仅替换中间部分?假设我不知道E7CF176E110C211B号码。我如何更改它?由于我们看不到您的屏幕,您必须准确地解释您拥有的内容和正在尝试执行的操作。是否可以更改指定字符串的中间部分,例如更改lastgroupid和之间的值;这样它就代替了这些之间的文本了?当然。请在上面的代码中使用lastgroupid、.+\而不是[0-9A-F]+。@user198989:Oops我的错误。我是用C格式写的。更正。