我如何regextract字符串中的第二个日期?

egdjgwm8  于 2023-02-14  发布在  其他
关注(0)|答案(3)|浏览(108)

我试图提取这个字符串中显示的第二个日期,但是我的代码一直只提取gsheet中的第一个日期:
字符串:BOT +1 1/1自定义IWM 100 9月12日22日/9月7日22日184/184看跌/看涨@6.13
这是我的代码:=正则表达式提取(A3,"({1,2}+[A-Za-z]+{2,4})")
我的结果:2022年9月12日
预期结果应为:* * 22年9月7日**
感谢您的帮助,提前致谢!

zkure5ic

zkure5ic1#

考虑到你已经有了一个检测日期的工作公式,你可以试着在括号外添加first,这样它会寻找第一个日期,然后.+会考虑到这两个日期之间会有一些字符,然后你的工作模式会放在括号内,然后只提取最后一部分:

=REGEXEXTRACT(A3,"\d{1,2}\s+[A-Za-z]+\s\d{2,4}.+(\d{1,2}\s+[A-Za-z]+\s\d{2,4})")
ejk8hzay

ejk8hzay2#

这里有一种方法可以动态提取字符串中的N个日期,或者根据需要提取第二个或第三个日期模式。

=index(if(len(A:A),lambda(y,regexextract(y,lambda(z,regexreplace(y,"(?i)("&z&")","($1)"))("\d{1,2}\s"&JOIN("\s\d{2}|\d{1,2}\s",INDEX(TEXT(SEQUENCE(12,1,DATE(2022,1,1),31),"MMM")))&"\s\d{2}")))(regexreplace(A:A,"[\(\)/+]","")),))

如果要选择特定的数字模式,请将公式 Package 在index + number中,如屏幕截图所示

=index(formula,,pattern number)

ebdffaop

ebdffaop3#

要只提取第二个日期,可以按如下所示修改代码:

=REGEXEXTRACT(A3,"\d{1,2}\s+[A-Za-z]+\s\d{2,4}.*(\d{1,2}\s+[A-Za-z]+\s\d{2,4})")

这个正则表达式\d{1,2}\s+[A-Za-z]+\s\d{2,4}.*(\d{1,2}\s+[A-Za-z]+\s\d{2,4})将匹配字符串中的第一个日期和第二个日期,然后只提取第二个日期。

相关问题