RegEx在此1/1/0001 12:00:00 AM上获取1/1/0001

本文关键字:0001 AM 获取 在此 RegEx | 更新日期: 2023-09-27 18:09:11

输入是1/1/0001 12:00:00 AM。在regex之后,我希望输出为1/1/0001

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

忘记发布我失败的regex

([^'s]+)

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

RegEx在此1/1/0001 12:00:00 AM上获取1/1/0001

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

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

**这是通用正则表达式字符串。您必须在C#/JavaScript等中转义反斜杠。

这将与1/1/0001或01/01/0001等相匹配。但也将匹配56/56/9999!因此,在得到约会部分后,你应该进行理智检查。

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

更新

如果你使用([^''s]+(,那么你会得到三个捕获组:

  • 0001年1月1日
  • 12:00:00
  • 上午

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

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

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

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()将其转换回字符串,或者删除空格字符之后的所有内容。

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

"''d{1}-''d{1}-''d{4}"