REGEX:如何在特定关键字后找到日期格式



我对此感到头疼。例如,我有:

Date
sometext
somtext
27-7-2013

我想做的是获得date关键字之后的第一个日期格式字符串模式。这是我目前拥有的:

(?i)(?<=date.*)d+-d+d+

但不幸的是,我什么都没有得到,如果我只是试图获得日期关键字后面的所有字符串,例如

(?i)date.*

我只得到的结果是:

Date[CR]

我正在使用Expresso测试我的正则表达式。我对使用regex很陌生,所以我不熟悉如何做事。

请帮忙!谢谢

在这种情况下,我不会使用lookbehind断言,而且(我认为)只有.net.支持无限长度的lookbehinds

我会使用一个捕获组:

(?is)date.*?(d{1,2}-d{1,2}-d{4})

您将在第一个捕获组中找到日期。

在Regexr 上查看

(?is)启用了与大小写无关的匹配模式i和单行模式s,这使得.也匹配换行符。

.*?延迟匹配任何字符。

(d{1,2}-d{1,2}-d{4})匹配一个或两个数字、一个短划线、一个或二个数字、短划线,然后是4个数字。

您可以查看以下正则表达式:

(?i)(?<=Date)[Ss]*?(d{1,2}-d{1,2}-(?:d{4}|d{2}))

在正则表达式中,您还缺少最后一个d+之前的-。此外,此正则表达式将处理具有四位数字和两位数字的year部分。

相关内容

  • 没有找到相关文章

最新更新