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

如何通过正则或VB.NET为函数括号内未知数量的参数添加带序号大括号

解答

可行性说明

  • 正则完全支持该需求,VB.NET 内置的正则类库即可实现,无需额外依赖。
  • 该方案支持任意数量的入参自动处理,无需针对参数个数单独写匹配规则。

实现步骤

  1. 用正则匹配所有函数调用结构,拆分出函数名和括号内的参数串
  2. 对参数串按逗号分割后遍历,给第N个参数(从1开始计数)包装为{N参数名}格式
  3. 重组函数调用结构替换原内容即可

可运行VB.NET代码示例

Imports System.Text.RegularExpressions

Module ParamFormatter
    Sub Main()
        ' 输入待处理文本
        Dim rawText As String = "functionNameA(one)
functionNameB(one, two)"
        
        ' 匹配函数调用的正则规则
        Dim funcRegex As New Regex("(\w+)\(([^)]*)\)")
        Dim processedText = funcRegex.Replace(rawText, AddressOf ParamReplaceHandler)
        
        ' 输出结果
        Console.WriteLine(processedText)
    End Sub

    ' 参数替换逻辑
    Private Function ParamReplaceHandler(match As Match) As String
        Dim funcName = match.Groups(1).Value
        Dim paramSeg = match.Groups(2).Value
        ' 拆分参数并去除前后空格
        Dim paramList = paramSeg.Split({","c}, StringSplitOptions.RemoveEmptyEntries).Select(Function(p) p.Trim())
        ' 生成新参数列表
        Dim newParamList = paramList.Select(Function(p, idx) $"{{{idx + 1}{p}}}")
        ' 重组返回
        Return $"{funcName}({String.Join(", ", newParamList)})"
    End Function
End Module

运行输出

functionNameA({1one})
functionNameB({1one}, {2two})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 23:06:04