RegEx在1/1/0001 12:00:00 AM获得1/1/0001

时间:2013-04-13 11:05:14

标签: c# regex

输入是1/1/0001 12:00:00 AM。在正则表达式之后,我想要成为1/1/0001

无法使正则表达式正常工作。任何想法>

忘了发布我失败的正则表达式

([^\s]+)

顺便说一句,我正在寻找日期转换。字符串到字符串转换。以上结果分为3个单词;

4 个答案:

答案 0 :(得分:0)

您可以在此字符串后面创建DateTime对象 - 使用内置函数,如ToShortDate()

答案 1 :(得分:0)

在您的特定情况下,RegEx将是:

^\d{1,2}/\d{1,2}/\d{2,4}

**这是一般的正则表达式字符串。你必须在C#/ JavaScript等中转义反斜杠。

这将匹配1/1/0001或01/01/0001等。 但也将匹配56/56/9999!因此,在获得日期部分后,您应该进行健全性检查。

但我更喜欢创建DateTime对象并使用DateTime的成员获取日期部分。

<强>更新

如果您使用([^ \ s] +),那么您将获得三个捕获组:

  • 1/1/0001
  • 12:00:00
  • AM

所以你必须提取第一个捕获组,通常是索引1:

var datePart = matchObj.Groups[1].Value // Should be "1/1/0001"

答案 2 :(得分:0)

string Date = "1/1/0001 12:00:00 AM";
string NewDate = Convert.ToDateTime(Date).ToShortDateString(); //note the output will be relate to local datetime format
string NewDate2 = Date.Substring(0, Date.IndexOf(' '));

首先将其转换为DateTime,然后使用ToShortDateString()返回字符串,或删除空格字符后的所有内容。

答案 3 :(得分:0)

这将是从输入中获取日期的正则表达式

"\\d{1}-\\d{1}-\\d{4}"