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就足够了,抱歉。

c#正则表达式匹配'n/n/n'其中n只是数字

你可能想要这样:

"^[0-9]+/[0-9]+/[0-9]+$"

请注意,正则表达式[0-9]要求数字为以下字符之一:0、1、2、3、4、5、6、7、8或9。它排除被视为数字的外部字符,例如阿拉伯-印度数字٨。如果您希望允许被认为是十进制数字的外部字符,那么使用'd而不是[0-9]

<>之前1/22/333٨/٢/٠^[0-9]+/[0-9]+/[0-9]+$ True False^'d+/'d+/'d+$ True True

使用正则表达式:

^'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");。如果输入字符串不是与给定格式字符串匹配的有效日期,则会抛出。

(即使你说你不需要它,其他一些搜索者可能很高兴在这里找到这个答案。)