[英]How to write a C# Regex to ensure a string starts with one char followed by 6 digits
我需要在C#中编写一个Regex,以确保字符串以S,R或V中的一个字符开头,然后有六个后续数字,如下所示:“S123456”。 这是我正在尝试使用的正则表达式:
@ “(S | R | V)[0-9] {6}?”
但是,如果我传递一个字符串太多,如“S1234567”,它就会失败。 我在这做错了什么?
var regex = new Regex(@"^[SRV]\d{6}$");
三个选项,取决于您想要实现的目标:
只是为了匹配字符串:
[SRV]\d{6}
要将该字符串作为单独的“单词”查找:
\b[SRV]\d{6}\b
为正则表达式匹配完整的字符串(我认为这是你需要的):
^[SRV]\d{6}$
编辑:
你的正则表达式“失败”因为它只是在字符串中寻找你的模式(作为我的第一个例子)。 如果字符串是S123456 7,则引擎与粗体部分匹配(从S到6),因此报告成功。 你必须使用锚点(我的第三个例子),如果你想让字符串只包含你的模式而没有别的东西(即字符串从头到尾匹配模式)。
^[sSvVnN]\d{6}$
将匹配指定字符的大小写
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.