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

如何用VB.NET正则表达式替换字符串首尾字符与子串

解决VB正则替换问题:将{xxx?}转换为xxx_Den

看来你离想要的结果只差一点点啦!你当前的正则只替换了?}部分,但还保留了开头的{,而且没有正确提取出中间的变量名来拼接后缀。我们需要调整正则,精准捕获变量名并完成替换。

问题分析

你的目标是把{capital?}这类格式的字符串,转换成capital_Den——也就是要去掉大括号和问号,同时在变量名后加上_Den。

正确的正则实现

我们可以用捕获组来提取{和?}之间的变量名,然后替换成[变量名]_Den。对应的正则表达式是:\{([^?]+)\?\}

正则拆解:

  • \{:匹配左大括号(需要转义,因为{在正则里是特殊字符)
  • ([^?]+):捕获组,匹配除了问号之外的所有字符(也就是我们要的变量名)
  • \?\}:匹配问号和右大括号(同样需要转义)

VB代码示例

Imports System.Text.RegularExpressions ' 记得引入正则命名空间

Dim SourceString As String = "{capital?} has a bridge for {people?}"
Dim ResultString As String = Regex.Replace(SourceString, "\{([^?]+)\?\}", "$1_Den")

执行这段代码后,ResultString的值就是:capital_Den has a bridge for people_Den,完全符合你的预期。

补充说明

  • $1在替换字符串中代表正则里第一个捕获组匹配到的内容(也就是capital、people这类变量名)
  • 如果你的变量名可能包含特殊字符,可以根据实际情况调整[^?]+的匹配规则,比如允许下划线的话可以改成[\w]+

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 14:37:29