c#正则表达式匹配'n/n/n'其中n只是数字
本文关键字:数字 其中 正则表达式 | 更新日期: 2023-09-27 18:09:16
我正在寻找正则表达式,看看字符串是否匹配格式
[int]/[int]/[int]
。
'98/4/76542' or '98/04/76542'
PS:我不想检查日期是否有效,而只想检查格式是否匹配'n/n/n',其中n是一个数字。
编辑:删除了不正确和误导性的'nn/nn/nnnn',只需要n'n'n就足够了,抱歉。
你可能想要这样:
"^[0-9]+/[0-9]+/[0-9]+$"
请注意,正则表达式[0-9]
要求数字为以下字符之一:0、1、2、3、4、5、6、7、8或9。它排除被视为数字的外部字符,例如阿拉伯-印度数字٨
。如果您希望允许被认为是十进制数字的外部字符,那么使用'd
而不是[0-9]
。
使用正则表达式:
^'d+/'d+/'d+$
这个模式将匹配用斜杠分隔的数字:
^'d+/'d+/'d+$
+
运算符确保每个组成部分至少有一个数字,但没有上限,所以例如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}$
当您想获得额外的"这是一个有效的日期检查"时,您可以使用DateTime validInputDate = DateTime.ParseExact(inputString, @"dd'MM'yyyy");
。如果输入字符串不是与给定格式字符串匹配的有效日期,则会抛出。
(即使你说你不需要它,其他一些搜索者可能很高兴在这里找到这个答案。)