我正在尝试在字段上创建一个正则表达式,接受以下内容:
其中X是介于0-9之间的数值,因此在 - 之前的3个数字和短划线之后的3个数字 我从以下开始,但是在破折号后添加验证我迷路了。
([0-9-])\w+([0-9-])
答案 0 :(得分:3)
3位数,短划线3位数:
\d{3}-\d{3}
答案 1 :(得分:2)
string pattern = @"^([0-9]{3})-([0-9]{3})$";
Regex rgx = new Regex(pattern);
答案 2 :(得分:2)
var example = "123-455";
var pattern = @"\A(\d){3}-(\d){3}\Z";
var result = Regex.Match(example, pattern);
这不仅会搜索字符串中的模式,还会确保模式的开头和结尾位于目标字符串的开头和结尾。这可确保您不会获得匹配,例如为:
"silly123-456stuff" or "0123-4567".
换句话说,它既寻找一种模式,又通过将其锚定到字符串的开头和结尾来限制其长度。
答案 3 :(得分:1)
我会将行的开头和结尾添加到正则表达式
^\d{3}-\d{3}$
-
=短划线不设置行的开头和结尾可能会捕获无效模式,例如Text123-4858
编辑:甚至比线标更好,Kjartan提出的anchors在这种情况下是正确的答案。