C# 我想检查字符串是否包含带两点的德语日期

C# 我想检查字符串是否包含带两点的德语日期,c#,string,date,C#,String,Date,我有字符串“24.04.2013” 如何识别字符串是否为日期 提前谢谢 像这样的 int count="24.04.2013".Count(c => c == '.'); 你可以尝试使用 string.Split('..).Length>=2您可以将字符串与正则表达式(RegEx)匹配。这不仅可以告诉你是否有两点,还可以告诉你格式是否正确:2位,点,2位,点,4位 Regex regex = new Regex("\d{2}\.\d{2}\.\d{4}"); if (regex.IsMa

我有字符串“24.04.2013”

如何识别字符串是否为日期

提前谢谢

像这样的

int count="24.04.2013".Count(c => c == '.');
你可以尝试使用


string.Split('..).Length>=2

您可以将字符串与正则表达式(RegEx)匹配。这不仅可以告诉你是否有两点,还可以告诉你格式是否正确:2位,点,2位,点,4位

Regex regex = new Regex("\d{2}\.\d{2}\.\d{4}");
if (regex.IsMatch(myInput, regex))
{ ... }

我认为你真正的问题应该是:如何确认日期

您应该使用来验证它

例如:

CultureInfo enDE = new CultureInfo("de-DE"); 
string dateString = "24.04.2013";

DateTime date;

if (DateTime.TryParseExact(dateString, "dd.MM.yyyy", enDE, DateTimeStyles.None, out date))
    Console.WriteLine("Success");
else
    Console.WriteLine("Failure");

可以通过正则表达式进行检查

    private static bool IsDateGerman(string germanDate)
    {
        Regex rx = new Regex(@"[0-3]?[0-9]\.[0-1]?[1-9]\.[0-9]{1,4}");

        return rx.IsMatch(germanDate);
    }

仍然没有处理像2013年19月39日这样的所有案件

是否
“.24042013”
可以吗?“24..042013”怎么样?或者
“24042013..”
?如果它确实是一个带日期的字符串,那么您应该使用
DateTime.TryParseExact
,这样您就知道它是否是日期,以及它是否包含所谓的2点或2点not@Matthew我改变了问题。我是不是因为不知道regex而被否决了?@kame-这可能是因为它没有显示出研究的努力不,德语日期不使用逗号。@DanielHilgarth-啊,我把它和Currency搞混了,我还是个C#初学者。在哪里可以找到关于(c=>c='.')含义的更多信息?@kame,特别是带有标准查询运算符部分的lambda。