[英]c# making a regex to accept numnerical values
我正在尝试在字段上创建一个正则表达式,接受以下内容:
其中X是0-9之间的数值,所以3之前的数字 - 和3之后的短划线。
我从以下开始,但是在破折号后添加验证我迷路了。
([0-9-])\w+([0-9-])
3位数,短划线3位数:
\\d{3}-\\d{3}
string pattern = @"^([0-9]{3})-([0-9]{3})$";
Regex rgx = new Regex(pattern);
var example = "123-455";
var pattern = @"\A(\d){3}-(\d){3}\Z";
var result = Regex.Match(example, pattern);
这不仅会搜索字符串中的模式,还会确保模式的开头和结尾位于目标字符串的开头和结尾。 这可以确保您不会获得匹配,例如:
"silly123-456stuff" or "0123-4567".
换句话说,它既寻找一种模式,又通过将其锚定到字符串的开头和结尾来限制其长度。
我会将行的开头和结尾添加到正则表达式中
^\d{3}-\d{3}$
-
=短划线 不设置行的开头和结尾可能会捕获无效模式,例如Text123-4858
编辑:甚至比线标记更好,Kjartan提出的锚点在这种情况下是正确的答案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.