Skip to content

str_SubstrBetween函数

函数名:wb_取中间文本 / str_SubstrBetween

函数功能

从给定文本中提取两个指定字符串之间的内容,支持返回第一个匹配或全部匹配结果,适用于文本提取、数据解析等场景。

参数规范

参数名类型必填示例特殊说明
inputString"标题:<name>张三</name>,职位:<role>经理</role>"原始文本内容
startMarkerString"<name>"开始截取的标记字符串
endMarkerString"</name>"结束截取的标记字符串
returnAllBooleanFALSE默认为False,True时返回所有匹配结果

使用案例

单个匹配提取

问题描述:从固定格式文本中提取特定字段
公式演示

excel
=str_SubstrBetween("标题:<name>张三</name>,职位:<role>经理</role>", "<name>", "</name>")

输出效果

text
张三

多个匹配提取

问题描述:提取多个匹配内容
公式演示

excel
=str_SubstrBetween("A[1], B[2], C[3], D[4]", "[", "]", TRUE)

输出效果

text
1  
2  
3  
4

结合VLOOKUP使用

问题描述:提取产品编号并进行查找
公式演示

excel
=VLOOKUP(str_SubstrBetween(A2, "[", "]"), D:E, 2, FALSE)

说明:A2="产品[1001]",D列为编号列表,E列为价格

技术说明

提取逻辑

  • 使用IndexOf查找开始标记和结束标记位置
  • 多次遍历提取所有匹配内容
  • 若未找到匹配内容,则返回错误信息

异常处理

错误场景返回值
输入文本为空错误: 开始标记和结束标记不能为空
开始标记或结束标记为空错误: 开始标记和结束标记不能为空
未找到匹配内容错误: 未找到匹配的中间文本
其他异常错误: <异常信息>

扩展应用

提取HTML/JSON数据

excel
=str_SubstrBetween("<div class='user'><name>李四</name><age>28</age></div>", "<name>", "</name>")

输出:李四

提取日志信息

excel
=str_SubstrBetween("LOG: [2023-10-05] 用户登录 [ID:1001] 操作成功", "[", "]", TRUE)

输出:

text
2023-10-05  
ID:1001

注:本函数在WPS 2019+和Excel 365中测试通过