我是Regex的新手,所以我正在寻找一种方法来检查我的字符串是否以某个正则表达式开头。我在互联网上找到了this,但我无法使用自定义正则表达式。
我需要知道特定行是否以
开头3.3. XXX
这是你如何格式化德国日期。所以正则表达式不需要只查找它,但可能
17.4. XXX
在这两种情况下,我都需要知道输入字符串是否以日期开头(可以有两种可能的符号,如上所述)。因此,对于它们都返回true,它不会为此:
15G
(例如)。
哪个正则表达式适合这个?
答案 0 :(得分:1)
如果你想要一个正则表达式来检测dd.mm类型的日期,这就是你的答案。
string testregex = "([0-2][0-9]|3[0-1]|[0-9])(.)(0[1-9]|1[0-2]|[0-9])(.)";
你可以检查任何字符串以找到这个正则表达式的匹配,Regex.IsMatch()返回true,if块中的语句将执行。
string text="17.4 xxxxxx";
if (Regex.IsMatch(string test,testregex))
{
//do something
}
答案 1 :(得分:1)
正则表达式不擅长解析数字范围,因此它可能会变得非常混乱DateTime.TryParseExact
要检查字符串是否为有效日期,您可以使用Init_DirectX - render fail
string s = "17.4. XXX"; DateTime d;
if (DateTime.TryParseExact(s.Split(' ')[0], "d.M.",
System.Globalization.CultureInfo.InvariantCulture,
System.Globalization.DateTimeStyles.None, out d))
{
// matches
Debug.Print($"{d}"); // "4/17/2017 12:00:00 AM"
}