如何解决C#正则表达式:{4},最多可以有4个值
|| 我需要一个正则表达式来检查输入是否正好是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);
}
(这是\'true \'但应该为false的c,其他的都可以)
提前致谢,
〜巨魔先生
解决方法
如果必须正好为4,则需要使用$和^标记输入的结束和开始:
Regex expr = new Regex(@\"^\\d{4}$\");
请注意,我还在这里使用逐字字符串文字,因此,为了省钱起见,那么您无需C#逃逸所有正则表达式-逃逸字符。只有\"
需要转义C#(到\"\"
)。
, \“ 55555 \”包含\“ 5555 \”,这是有效的...因此该字符串包含一个匹配项,即使该匹配项不是完整的字符串也是如此。有关解决方案,请参阅马克的答案
, 5位数字的字符串也包含4位数字,因此必须确保还添加了字符串约束的开始和结尾。
这应该作为您的正则表达式工作:
Regex expr = new Regex(@\"^\\d{4}$\");
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。