str_SubstrBetween函数
函数名:wb_取中间文本 / str_SubstrBetween
函数功能
从给定文本中提取两个指定字符串之间的内容,支持返回第一个匹配或全部匹配结果,适用于文本提取、数据解析等场景。
参数规范
| 参数名 | 类型 | 必填 | 示例 | 特殊说明 |
|---|---|---|---|---|
input | String | 是 | "标题:<name>张三</name>,职位:<role>经理</role>" | 原始文本内容 |
startMarker | String | 是 | "<name>" | 开始截取的标记字符串 |
endMarker | String | 是 | "</name>" | 结束截取的标记字符串 |
returnAll | Boolean | 否 | FALSE | 默认为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中测试通过