Google Sheets中从文本提取日期时间的正则表达式问题求助
解决正则提取日期和时间的问题
问题原因
你当前的正则(?:.+)(\d{1,2}/\d{1,2}/\d{4})中,.+是贪婪匹配,会尽可能多地消耗字符,导致它吃掉了日期的前一位数字(1),只留下了6/2/2021。
单独提取日期
使用以下公式,避免贪婪匹配的问题,精准捕获完整日期:
=REGEXEXTRACT(A19, "(\d{1,2}/\d{1,2}/\d{4})")
或者更严谨地匹配日期前的空格(避免文本中其他数字干扰):
=REGEXEXTRACT(A19, "\s(\d{1,2}/\d{1,2}/\d{4})")
这两个公式都会返回16/2/2021。
单独提取时间
匹配包含AM/PM的时间格式,使用:
=REGEXEXTRACT(A19, "(\d{1,2}:\d{2}\s[AP]M)")
返回结果为9:44 AM。
同时提取日期和时间
如果需要一次性提取日期和时间并分别放在相邻单元格,使用双捕获组的正则:
=REGEXEXTRACT(A19, "(\d{1,2}/\d{1,2}/\d{4})\s(\d{1,2}:\d{2}\s[AP]M)")
在Google Sheets中,这个公式会自动将日期填充到当前单元格,时间填充到右侧单元格。
内容的提问来源于stack exchange,提问作者Techie Nerd
相关产品推荐
相关产品推荐

