Excel中正则表达式通过匹配特定字符模式,实现文本精准查找、提取、替换。
原理说起来很简单,做起来却是难度不小。对于偶尔用几次的非专业人士来说,深入地学习林林种种规则需要付出巨大的时间成本,重要的是一段时间不用又忘得差不多了。
以下总结了一组常见的正则表达式提取公式,建议收藏以备不时之需。
从文本中提取电话号码,抓住其数字的特点,以下两个公式都可以实现:
=REGEXEXTRACT(A2,"[0-9]+")
[0-9]+和\d+都可以表示连续数字

数据结构变成如图所示,仍然是提取电话号码:
=REGEXEXTRACT(A2,"[^一-龟]+")
脱字号^可以理解为“非”,[^一-龟] 表示连续的非中文字符。

如图所示,要提取其中的总金额:
=SUM(--REGEXEXTRACT(A2,"[0-9.]+(?=元)",1))
注意,文本中有多个数字,带单位“元”的才是金额,于是用(?=元)表示“元”字之前的内容,提取后用双减号转换为数字后求和。

如图,从规格中提取尺寸,观察其特点“数字*数字”的结构:
=REGEXEXTRACT(A2,"[\d]+\*[\d]+")
星号*在正则中本身是作为量词存在,需用转义符\使其回归字面意义。

=REGEXEXTRACT(A2,"(\w+)",1)
\w匹配单个数字、汉字、字母和下划线。

如果不要括号:
=REGEXEXTRACT(A2,"(?<=()\w+",1)
(?<=()表示提取左括号后面的内容。
