Skip to content

str_RegexExtract函数

函数名:wb_正则提取 / str_RegexExtract

函数功能

根据指定的正则表达式模式,从文本中提取所有匹配的内容,支持横向或纵向输出结果。

参数规范

参数名类型必填示例特殊说明
inputString"abc123xyz456"需要匹配的原始文本
patternString"\d+"正则表达式,用于匹配文本内容
horizontalOutputBooleanTRUE结果输出方向,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中测试通过