Regex 如何在excel中提取文本字符串中的最后日期和时间
我遇到了一个问题,我试图找出如何在excel电子表格上以字符串形式提取最后一次通信的日期和时间。Regex 如何在excel中提取文本字符串中的最后日期和时间,regex,excel,Regex,Excel,我遇到了一个问题,我试图找出如何在excel电子表格上以字符串形式提取最后一次通信的日期和时间。 每个单元格中的每个通信都以“附加信息”开头,然后是时间戳,时间戳以“CET”结尾,如下所示(请注意,我已将正文文本替换为废话,废话,废话): 示例单元格: Additional information 4/15/15 4:29 PM CET Ronald Ben As per phone conversation Blah, blah, blah, blah, blah, blah,
每个单元格中的每个通信都以“附加信息”开头,然后是时间戳,时间戳以“CET”结尾,如下所示(请注意,我已将正文文本替换为废话,废话,废话): 示例单元格:
Additional information 4/15/15 4:29 PM CET Ronald Ben As per phone conversation Blah, blah, blah, blah, blah, blah, blah Thank you
---------------------------
Additional information 4/15/15 3:31 PM CET Ben I inspected Blah, blah,blah, blah, blah, blah, blah, blah, blah, blah, blah
---------------------------
Additional information 4/13/15 8:02 PM CET Michael Hi Craig As per Blah, blah,blah, blah, blah, blah, blah
---------------------------
Additional information 4/13/15 7:19 PM CET Craig Hello Michael, Blah, blah,blah
---------------------------
Additional information 4/13/15 2:42 PM CET Blah, blah,blah
---------------------------
Additional information 4/10/15 10:46 PM CET Mark Hello Craig, Blah, blah,blah
文本字符串的长度因单元格而异,但每个单元格的结构完全相同
在上述示例中,最后一个时间戳应输出为4/10/15 10:46 PM
我尝试使用RegexExtract函数,但由于某些原因,它不起作用
任何帮助都将不胜感激。以下是关于如何在excel上使用regex的指南: 以及模式:
\d+\/\d+\/\d+\s\d+:\d+\s[A|P]M(?!.*(?:\d+\/\d+\/\d+\s\d+:\d+\s[A|P]M))
如果你的引擎支持向前看,我会做这项工作
在Regexr.com上测试:
说明:
第一部分:
\d+\/\d+\/\d+\s\d+:\d+\s[A|P]M
基本上是你用来查找日期的正则表达式
以及先行条款:
(?!.*(?:\d+\/\d+\/\d+\s\d+:\d+\s[A|P]M))
丢弃前面有另一个日期匹配的匹配,只留下最后一个
这是一本关于环顾四周的优秀指南:
InStrRev
将为您提供上一次CET的位置从那一点往回走20分钟应该会给你时间
MyStr=range(“A1”)
Pos=仪表(MyStr,“CET”)
'您可能需要调整位置值(此处为20和12)
LastDate=DateValue(Mid(MyStr,Pos-20))
LastTime=时间值(Mid(MyStr,位置12))
如果每个条目都以静态文本开头,我不确定正则表达式是否是最好的解决方案,因为日期/时间字符串可以很容易地找到并剥离出来。CDate
功能将在一个笔划中转换日期和时间部分
myDateTime = CDate(Mid(Range("A1").Value2, 23, 21))
虽然RegEx可能是一个很好的解决方案,用于更动态的文本输入,但在这里不需要它。这在我尝试时效果很好,但后来意识到我对问题的看法不正确。我还有其他的应用程序,我也可以使用它。谢谢你的帮助!!我尝试过这个函数,但由于某种原因,即使在我将值调整到正确的值时,我仍然会出现调试错误。嘿,伙计们,我意识到我搞砸了,这实际上比我想象的要简单,但你们仍然帮了我很多忙。最后一个对应实际上在字符串的开头,但由于某种原因,我看不清楚。