如何通过正则或VB.NET为函数括号内未知数量的参数添加带序号大括号
解答
可行性说明
- 正则完全支持该需求,VB.NET 内置的正则类库即可实现,无需额外依赖。
- 该方案支持任意数量的入参自动处理,无需针对参数个数单独写匹配规则。
实现步骤
- 用正则匹配所有函数调用结构,拆分出函数名和括号内的参数串
- 对参数串按逗号分割后遍历,给第N个参数(从1开始计数)包装为
{N参数名}格式 - 重组函数调用结构替换原内容即可
可运行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
相关产品推荐
相关产品推荐

