Google Sheets中如何用REGEXEXTRACT提取字符串的第二个日期?
Google Sheets提取字符串中第二个日期的解决方案
原公式=REGEXEXTRACT(A3,"(\d{1,2}\s+[A-Za-z]+\s\d{2,4})")仅返回第一个匹配的日期,以下是两种可行的解决方法:
方法1:利用日期分隔符精准匹配
针对你字符串中日期以/分隔的特点,直接定位第二个日期:
=REGEXEXTRACT(A3,"\d{1,2}\s+[A-Za-z]+\s\d{2,4}\s*\/\s*(\d{1,2}\s+[A-Za-z]+\s\d{2,4})")
- 正则逻辑:
- 先匹配第一个日期格式
\d{1,2}\s+[A-Za-z]+\s\d{2,4} - 匹配日期间的
/(允许前后有空格:\s*\/\s*) - 用括号捕获第二个日期作为返回结果
- 先匹配第一个日期格式
方法2:通用提取第N个匹配项
如果日期分隔不固定,可通过数组索引提取第二个匹配结果:
=INDEX(REGEXEXTRACT(A3,"(?:.*?(\d{1,2}\s+[A-Za-z]+\s\d{2,4})){2}"),2)
- 逻辑说明:
(?:.*?(\d{1,2}\s+[A-Za-z]+\s\d{2,4})){2}:重复匹配两次,每次捕获一个日期(?:为非捕获组,避免无效匹配)INDEX(...,2):从捕获的日期数组中选取第二个元素
也可以先移除第一个日期及之前的内容,再提取剩余部分的第一个日期:
=REGEXEXTRACT(REGEXREPLACE(A3,".*?"®EXEXTRACT(A3,"\d{1,2}\s+[A-Za-z]+\s\d{2,4}"),""),"\d{1,2}\s+[A-Za-z]+\s\d{2,4}")
内容的提问来源于stack exchange,提问作者Emye DaOne
相关产品推荐
相关产品推荐

