c#生成正则表达式以接受数值
我正在尝试在字段上生成一个正则表达式,它接受以下内容: 其中X是介于-之前的0-9 so 3个数字和破折号之后的3个数字之间的数值。c#生成正则表达式以接受数值,c#,C#,我正在尝试在字段上生成一个正则表达式,它接受以下内容: 其中X是介于-之前的0-9 so 3个数字和破折号之后的3个数字之间的数值。 我从以下内容开始,但在破折号后添加验证时迷失了方向 ([0-9-])\w+([0-9-]) 3位数字,一个破折号,然后是3位数字: \d{3}-\d{3}我会将行的开头和结尾添加到正则表达式中 ^\d{3}-\d{3}$ ^=在行的开头 \d=一个数字 {3} =三次 -=破折号 \d=一个数字 {3} =三次 $=行的末尾 不设置行首和行尾可能捕获无效模
我从以下内容开始,但在破折号后添加验证时迷失了方向
([0-9-])\w+([0-9-])
3位数字,一个破折号,然后是3位数字:
\d{3}-\d{3}
我会将行的开头和结尾添加到正则表达式中
^\d{3}-\d{3}$
- ^=在行的开头
- \d=一个数字
- {3} =三次
=破折号-
- \d=一个数字
- {3} =三次
- $=行的末尾
Text123-4858
编辑:甚至比直线标记更好,在这种情况下,由Kjartan提出的建议是正确的答案
var example = "123-455";
var pattern = @"\A(\d){3}-(\d){3}\Z";
var result = Regex.Match(example, pattern);
这不仅可以搜索字符串中的模式,还可以确保模式的开头和结尾位于目标字符串的开头和结尾。这可确保您不会获得匹配项,例如:
"silly123-456stuff" or "0123-4567".
换句话说,它既查找模式,又通过将其锚定到字符串的开头和结尾来限制其长度 请参阅Kjartan的答案,了解如何正确使用锚来界定正则表达式+1,是的,这是一个傻瓜式的解决方案,我现在明白了
"silly123-456stuff" or "0123-4567".