You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VB.NET实现仅替换文本文件中指定ID的[newtext]/[endtext]块内内容

解决方案

实现思路

用正则表达式精准匹配指定ID对应的[newtext]和[endtext]包裹的块,仅替换块中间的内容,不会影响其他ID的标记块。

完整修改后代码

' 必要命名空间,需放在代码文件顶部
Imports System.IO
Imports System.Text.RegularExpressions

' 核心业务逻辑
Dim targetId As String = TextBox1.Text ' 输入要修改的ID,例如103
Dim newContent As String = TextBox2.Text ' 输入对应ID块要替换的新内容
Dim filePath As String = Path.Combine(My.Application.Info.DirectoryPath, "Data.txt")
Dim originalText As String = File.ReadAllText(filePath)

' 正则精准定位指定ID的标记块中间区域
Dim pattern As String = $"(?<=\[newtext\]{Regex.Escape(targetId)}\r?\n)[\s\S]*?(?=\r?\n\[endtext\]{Regex.Escape(targetId)})"
Dim updatedText As String = Regex.Replace(originalText, pattern, newContent)

File.WriteAllText(filePath, updatedText)

代码说明

  • 正则采用正向预查、反向预查定位边界,只会修改指定ID块的内容,其余ID的标记块会完整保留
  • 用Path.Combine拼接路径,规避不同环境路径分隔符不兼容的问题
  • Regex.Escape自动处理ID中可能存在的特殊字符,避免正则匹配异常

内容的提问来源于stack exchange,提问作者user16526006

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 04:06:04