当前位置: 首页 > 知识库问答 >
问题:

Regex Google sheets匹配日和月具有不同位数的日期

鲁望
2023-03-14

在google sheets中,我希望能够从文本单元格中提取日期。我在RegEx中找到了一个解决方案,从Google Sheets单元格内的字符串中获取日期格式的最后一个匹配,但它没有考虑到我的日期格式不同。他们可能有1或2个数字表示日,然后1或2个数字表示月,2或4个数字表示年。

我已经调整了上面的解决方案,使用d{1,}查找多位数:

“(?:. )(\d{1,}-\d{1,}-\d{2,})“,但如果当天有 2 位数字,则第一位数字会掉下来

“1-8-2018 en 1-2-2019”结果为-

它似乎月和年都可以工作,但一天不行,我该如何解决这个问题?

附加问题:大多数情况下,牢房里有两个约会,有时未来会有三个甚至更多。我想能够选择返回的日期。现在正在选择最后一个日期。有没有一种方法可以从一开始就计算比赛的数量,然后选择一个?

共有1个答案

王景山
2023-03-14

你可以用

^(?:.*?(\d{1,2}-\d{1,2}-\d{2}(?:\d{2})?)){2}

请参阅正则表达式演示。由于末尾的{2}限制量词,这将选择每个字符串中的第二个日期。将限制号调整为您需要的数字。

细节

  • ^-字符串开头
  • (?:-非捕获组的开始(用于对此处要量化的模式进行分组)
    • <代码>.*-除换行符以外的任何0个字符,尽可能少(*?是非贪婪的)
    • <代码>(\d{1,2}-\d{2,2}-\ d{2}(?:\d{2{)?)-第1组(实际输出):一位或两位,-,一位或二位,-,两位,然后是两位数字的可选块

 类似资料:
  • 问题内容: 尽管我以millisec格式获取了正确的时间,但是Month显示为2(3月?)为什么会这样? 下面是输出 Mili->> 1434029840778 月->> 2 问题答案: 您需要以下成语:。 本身只是一个内部常量,并且(希望)始终会返回。 例 输出量 另请参阅:API

  • 问题内容: 我正在尝试计算自特定日期起经过的月份,但如果我将今天的日期与过去的年份不同,则该函数可以使我有一个月的差异(少于一个月),因此该函数可以正常工作。 说出所有日期,该功能运行良好,但以下情况除外: 如果今天是“ 2014-03-06”(YYYY,MM,DD),并且我将函数的日期处理为“ 2006-03-06”,则结果要短一个月,但是如果明天使用相同的日期,结果很好。我要去哪里错了。下面是

  • 我正在寻找一种方法来定制Android中的日期选择器,使其只显示日和月(即没有年)。 有什么想法吗?

  • 问题内容: 我有一个表示 法语 语言环境中日期的字符串:08-oct-08: 我需要 解析 该String,所以我想到了这个SimpleDateFormat: 但是我对月份部分有问题,这似乎应该以结束点表示: 给我 : 现在让我理解SimpleDateFormat(“ 09-oct-08”)的最佳方法是什么? 完整代码: 这给了我:java.text.ParseException:无法解析的日期:

  • 似乎不能处理一个数字的月份中的某一天: 在此示例中,正确解析日期,但引发异常。如果我使用零填充日期,例如“05/03/1969”,则两者都起作用。但是,如果每月的日期或每年的月份都是个位数,则将引发异常。 什么是格式来解析一个数字和两位数的月份和一年中的月份?