我正在寻找正则表达式来查看字符串是否与格式匹配
[int]/[int]/[int]
e.g。
'98/4/76542' or '98/04/76542'
PS:我不想检查日期是否有效,但只是格式与'n / n / n'匹配,其中n是数字。
编辑:删除了非直接和误导性的'nn / nn / nnnn',只需要n \ n \ n就足够了,道歉。
答案 0 :(得分:6)
你可能想要这个:
"^[0-9]+/[0-9]+/[0-9]+$"
请注意,正则表达式[0-9]
要求数字为以下字符之一:0,1,2,3,4,5,6,7,8或9. 排除< / em>被视为数字的外来字符,例如阿拉伯语 - 印度数字٨
。如果要允许被视为十进制数字的外来字符,请使用\d
而不是[0-9]
。这是差异的demonstration。
1/22/333 ٨/٢/٠ ^[0-9]+/[0-9]+/[0-9]+$ True False ^\d+/\d+/\d+$ True True
答案 1 :(得分:4)
使用此正则表达式:
^\d+/\d+/\d+$
答案 2 :(得分:2)
此模式将匹配以斜杠分隔的数字:
^\d+/\d+/\d+$
+
运算符确保每个组件中至少有一个数字,但没有上限,因此exaple 1/2/33333333333333333333333333333333333333333
是一个有效的字符串,但第三个组件不能被解析为32位整数。
您可以指定位数,使其落在合理的范围内,例如:
^\d{1,10}/\d{1,10}/\d{1,10}$
反斜杠是常规字符串中的转义字符,因此可以写成"^\\d{1,10}/\\d{1,10}/\\d{1,10}$"
,但您也可以使用@分隔字符串并将其写为@"^\d{1,10}/\d{1,10}/\d{1,10}$"
。
对于日期,您可能希望更具体地说明位数,例如:
^\d{1,2}/\d{1,2}/\d{4}$
答案 3 :(得分:1)
如果您想获得额外的“这可以是有效的日期检查”,您可以使用DateTime validInputDate = DateTime.ParseExact(inputString, @"dd\MM\yyyy");
。如果输入字符串不是与给定格式字符串匹配的有效日期,则抛出此内容。
(即使你说yuo不需要它,其他一些搜索者也很乐意在这里找到这个答案。)