更新时间:作者:小小条
正则表达式是计算语言中用来描述字符串的特定方式,比如”\d”用来描述数字,”\D”用来描述非数字字符,“\D{3}\d{3}”可以描述3个非数字字符和3个数字的字符串,例如“猕猴桃100 “,”AWD700“,” 红桃K000”……
Excel365是一个历史性的版本,公式函数被正式承认为一门编程语言,于是大家也就名正言顺地用上正则表达式了。

Excel365中基于正则表达式产生了3个新的函数,给2个原有函数增加了“正则表达式匹配“模式。
REGEXTEST用于检测是否包含正则表达式描述的字符串;REGEXEXTRACT用于提取满足正则表达式描述的字符串;REGEXREPLACE可以将满足正则表示描述字符串替换为其他文本;XLOOKUP第五参数match_mode增加“正则表达式匹配“模式;XMATCH第三参数match_mode增加“正则表达式匹配“模式。REGEXTEST检测到文本与正则表示描述相匹配时返回TRUE,不匹配返回FALSE.
=REGEXTEST(A1,"\D{3}\d{3}")
即便是对正则表达式还一无所知的用户,也可以用它来检测字符串中是否包含关键字。
REGEXTEST检测是否包含“桃“字,返回逻辑值数组作为FILTER的第二参数实现筛选:
=FILTER(A1:A5,REGEXTEST(A1:A5,"桃"))
文本中包含多个满足正则表达式描述的文本时,可以通过设置REGEXEXTRACT的第三参数把它们全部提取出来:
=REGEXEXTRACT(A1,"\D{3}\d{3}",1)
函数REPLACE用于替换指定位置的文本,REGEXREPLACE除了能指定位置,还能指定关键字,指定字符结构的文本进行替换,总之正则表达式能够识别到的文本都能替换。
=REGEXREPLACE(A1,"\D{3}\d{3}","非法字符")
再比如要把文本中的三个符号(,。;)都替换成换行符CHAR(10),用SUBSTITUTE要嵌套两次,而REGEXREPLACE只需一个简单公式:
=REGEXREPLACE(A1,",|。|;",CHAR(10))
理解这个公式只需要一个关键知识点,正则表达式中用|表示或,完整的逻辑就是把A1中的,或。或;都替换成CHAR(10).
XLOOKUP和XMATCH启用正则表达式匹配,如匹配成功则返回需要的数据或位置。比如只记得一家公司的名称中有个“得”字和“东”字,连先后顺序都不确定,就可以用正则表达式描述包含有这两个字的字符串,XLOOKUP查找出具体数据:
=XLOOKUP("[得东]",A2:A6,A2:B6,,3)
而XMATCH返回其位置:
=XMATCH("[得东]",A:A,3)
五个函数的基本功能很好理解,正则表达式的语法规则才是是学*的重点难点。
版权声明:本文转载于今日头条,版权归作者所有,如果侵权,请联系本站编辑删除