C#正则表达式:{4}并且可能有4个以上的值
本文关键字:4个 可能有 正则表达式 | 更新日期: 2023-09-27 17:57:54
我需要一个正则表达式来检查输入是否正好是4个数字。我正在使用"''d{4}"(也尝试过"''d''d''d''d")。但是,如果您输入5个数字,它也表示输入是有效的。
[TestMethod]
public void RegexTest()
{
Regex expr = new Regex("''d{4}");
String a = "4444", b = "4l44", c = "55555", d = "5 55";
Match mc = expr.Match(a);
Assert.IsTrue(mc.Success);
mc = expr.Match(b);
Assert.IsFalse(mc.Success);
***mc = expr.Match(c);
Assert.IsFalse(mc.Success)***;
mc = expr.Match(d);
Assert.IsFalse(mc.Success);
}
(c是"真"的,但应该是假的,其他的都有效)
提前感谢,~ Troll爵士
如果它必须是恰好4,那么您需要使用$和^来标记输入的结束和开始:
Regex expr = new Regex(@"^'d{4}$");
注意,我在这里也使用了逐字逐句的字符串文字,所以为了保持理智,您不需要对所有正则表达式转义字符进行C#转义。只有"
需要在C#中转义(到""
)。
"55555"包含"5555",这是有效的。。。因此,字符串包含一个匹配项,即使该匹配项不是完整的字符串。有关解决方案
一个有5位数字的字符串也包含4位数字,因此您必须确保还添加了字符串约束的开始和结束。
这应该作为您的Regex:工作
Regex expr = new Regex(@"^'d{4}$");