str_RegexExtract函数
函数名:wb_正则提取 / str_RegexExtract
函数功能
根据指定的正则表达式模式,从文本中提取所有匹配的内容,支持横向或纵向输出结果。
参数规范
| 参数名 | 类型 | 必填 | 示例 | 特殊说明 |
|---|---|---|---|---|
input | String | 是 | "abc123xyz456" | 需要匹配的原始文本 |
pattern | String | 是 | "\d+" | 正则表达式,用于匹配文本内容 |
horizontalOutput | Boolean | 否 | TRUE | 结果输出方向,TRUE横向,FALSE纵向,默认TRUE |
使用案例
3.1 提取所有数字串,横向输出
问题描述:从文本中提取所有数字片段 公式演示:
excel
=str_RegexExtract("abc123xyz456", "\d+")输出效果(横向一行显示): | 123 | 456 |
3.2 提取单词,纵向输出
问题描述:提取所有字母单词,纵向排列 公式演示:
excel
=str_RegexExtract("abc123 xyz456", "[a-zA-Z]+", FALSE)输出效果(纵向一列显示): | abc | | xyz |
3.3 输入为空返回提示
问题描述:输入文本或正则为空 公式演示:
excel
=str_RegexExtract("", "\d+")输出效果: | 输入不能为空 |
3.4 无匹配项返回提示
问题描述:正则无匹配结果 公式演示:
excel
=str_RegexExtract("abc", "\d+")输出效果: | 未找到匹配项 |
技术说明
4.1 正则匹配
- 使用.NET标准正则表达式匹配
- 返回所有匹配项的完整字符串(不返回捕获组内容)
4.2 结果结构
- 横向输出:单行多列二维数组
- 纵向输出:多行单列二维数组
4.3 异常处理
| 错误场景 | 返回值 |
|---|---|
| 输入为空 | {"输入不能为空"} |
| 无匹配项 | {"未找到匹配项"} |
| 运行异常 | {"错误: 异常描述"} |
扩展应用
6.1 提取邮件地址
excel
=str_RegexExtract(A1, "[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}")6.2 验证手机号并提取
excel
=str_RegexExtract(B1, "1\d{10}")注:本函数在WPS 2019+和Excel 365中测试通过