输入是 1/1/0001 12:00:00 AM。在正则表达式之后,我希望输出为 1/1/0001
无法使正则表达式正常工作。任何想法>
忘记发布我失败的正则表达式
([^\s]+)
顺便说一句,我正在寻找日期转换。字符串到字符串的转换。上面的结果是 3 个单词,由 ; 分隔。
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}"
在您的特定情况下,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:
var datePart = matchObj.Groups[1].Value // Should be "1/1/0001"
您可以在此字符串之后创建 DateTime 对象 - 以使用内置函数,例如 ToShortDate()