有没有办法REGEX这个信息。

时间:2011-10-22 05:13:56

标签: .net regex regex-negation

我正在尝试使用单个regEX从下面的行中检索日期。下面字符串中的日期和时间可以更改。

My Birthday is: Thu Jan 12 23:59:59 GMT 2012.

如果我使用此regEX

(?<=My Birthday is: ).+?(?=\.)

它会给我这个。

Thu Jan 12 23:59:59 GMT 2012

但我正在寻找这个......

Thu Jan 12 2012

如何使用与.NET一起使用的单个Regex语句来实现这一目标

1 个答案:

答案 0 :(得分:5)

你所遵循的正则表达式如下:

^My Birthday is: (\w{3} \w{3} \d\d) \d\d:\d\d:\d\d \w{3}( \d{4})\.$

然后,您只需要通过引用其各自的索引来加入两个捕获的组。我不懂.NET,但它在JavaScript中看起来像这样:

text.replace(/(\w{3} \w{3} \d\d) \d\d:\d\d:\d\d \w{3}( \d{4})\.$/, '$1$2')

您可能需要在正则表达式中更改的一件事是第一个\d\d,具体取决于1-9的显示方式。如果它们显示为1-9(而不是01-09),则需要使用\d\d?代替。