求助:使用Mid函数从大文本提取指定内容遇多变量场景难题
提取结构化文本中
save字段的目标值 针对你的场景,用正则表达式替代Mid函数更适配多变的变量和场景:
正则匹配规则:
save=([^)]+)- 规则说明:精准匹配
save=开头到第一个)结束的内容,直接捕获save字段的取值(比如human)
- 规则说明:精准匹配
代码示例(以VBA为例,适配你使用Mid函数的场景):
Dim inputStr As String Dim regex As Object Dim matchResult As Object Set regex = CreateObject("VBScript.RegExp") regex.Pattern = "save=([^)]+)" regex.Global = True ' 开启全局匹配,可提取所有符合条件的结果 ' 示例输入文本 inputStr = "(Description=(help(save=human)(name=Randolp.trd.com)(place=JPN))(connecting_place=(city_name=tokyo.trd.com)))" Set matchResult = regex.Execute(inputStr) ' 输出第一个匹配到的结果 If matchResult.Count > 0 Then Debug.Print matchResult(0).SubMatches(0) ' 输出:human End If
- 优势:无需固定字符位置,不管前缀是
help还是helplocation_time,只要是save=xxx)的格式都能准确提取目标内容,覆盖多种场景。
内容的提问来源于stack exchange,提问作者slairo72
相关产品推荐
相关产品推荐

