REGEXP函数是WPS表格中处理复杂字符串匹配的强大工具,特别适用于数据验证、提取、清洗和复杂搜索场景。掌握它能极大提升我们处理文本数据的灵活性。
正如所有强大的工具一样,能力越大,责任越大。REGEXP正则函数,关键时刻能顶大用,这不今天我们就用到了!
如下图所示:
A列为产品信息列。
每个单元格内的产品信息都有其固定的格式:"字母-数字"
但是每个单元格内产品的个数不尽相同。
我们想要通过B1:D1区域给出的已知的产品信息中的“字母”,将产品信息中的“数字”部分,提取到“字母”(第1行)与A列完整产品信息的交叉指定位置。
解决这个问题用到的正是REGEXP函数强大的“字符串描述”功能,将用正则描述出来的特定内容,利用自身“提取模式”提取出来。
第一步
正则提取
使用REGEXP正则表达式函数:
=REGEXP($A2,"-\d+")
\d+:表示任意长度的连续数字
因为例子中数字前面都有一个“-”,所以用:
-\d+:表示以“-”开头的任意长度的连续数字
那么我们利用REGEXP默认的提取模式(第3参数省略或0),依次将A2、A3、A4单元格中的“以“-”开头的任意长度的连续数字”逐个提取出来。

到目前为止的缺陷是:
提取出来的数字并未与B1:D1区域的“字母”部分一一对应。
为了解决上面的缺陷,我们继续完善正则表达式部分:
=REGEXP($A2,B$1&"-\d+")
我们用B1:D1区域的各个“字母”与"-\d+"部分连接起来,就可以代表动态的、完整的产品信息“字母-数字”格式了。那么此时肯定能精准的在B1:D1区域各个“字母”下方指定交叉位置提取到"字母-数字"。
如果包含对应产品名称则显示对应的"字母-数字",否则显示错误值。
第二步
美化错误值
使用IFERROR函数:
=IFERROR(REGEXP($A2,B$1&"-\d+"),"")
以上一步REGEXP函数作为IFERROR的第一参数。
如果第一参数是错误值,则目标公式单元格强制返回空值。
第三步
替换
为了使返回的结果"字母-数字",只显示“数字”部分,我们选择使用SUBSTITUTE函数进行动态替换:
=SUBSTITUTE(IFERROR(REGEXP($A2,B$1&"-\d+"),""),B$1&"-","")
需要查找替换的原始数据(参数1):
IFERROR(REGEXP($A2,B$1&"-\d+"),"")
需要替换的原字符串(参数2):
B$1&"-"
表示非“字母-”部分(非数字部分)
需要替换为的新字符串(参数3):
""(表示空值)
替换为空值,可以理解为变相的删除。