C# c条件正则表达式字符串匹配

C# c条件正则表达式字符串匹配,c#,regex,C#,Regex,我试图用c正则表达式来匹配一个特定的字符串,但我不知道怎么做。感谢您的帮助 我试图匹配的字符串如下,其中A是大写字母字符,X是大写字母数字字符,是0、1或2 AA-XX-X-XXX-XXXXXXX-XXXXXXXX 因此,以下任何一项都将与上面的字符串匹配 XY-1 MM-0-AB MM-0-AB-1-ABC-1234567 VV-2-XX-7-CCC-ABCDEFG-12345678 以下任何一项都不匹配 QQ-7-AA第二级只允许0、1、2 QQ-2-XX-7-CC该级别的部分字符 QQ-2

我试图用c正则表达式来匹配一个特定的字符串,但我不知道怎么做。感谢您的帮助

我试图匹配的字符串如下,其中A是大写字母字符,X是大写字母数字字符,是0、1或2

AA-XX-X-XXX-XXXXXXX-XXXXXXXX

因此,以下任何一项都将与上面的字符串匹配

XY-1

MM-0-AB

MM-0-AB-1-ABC-1234567

VV-2-XX-7-CCC-ABCDEFG-12345678

以下任何一项都不匹配

QQ-7-AA第二级只允许0、1、2

QQ-2-XX-7-CC该级别的部分字符

QQ-2-XX-7-CCC-ABCDEFG-不能以破折号结束

QQ-2-XX-7-CCC-ABCDEFG-123456该级别的部分字符

到目前为止,我还没有找到匹配@^[A-Z]{2}的模式,但我不确定如何有条件地匹配,我甚至不确定条件是否是使用字符串其余部分的合适术语,但只有在它存在的情况下。我需要为此写7条不同的语句吗?似乎不合理,但我可能错了。

看一看。您需要以下元素:

大写字母字符:[A-Z] 大写字母数字字符:[A-Z0-9] 0、1或2:[0-2] 短跑:-

精确匹配x n次:x{n}

匹配x零或一次:x? 定义子表达式:。。。 示例:

两个大写字母字符:[A-Z]{2} 两个大写字母字符,后跟破折号:[a-Z]{2}- 两个大写字母字符,后跟破折号,后跟0、1或2:[a-Z]{2}-[0-2] 两个大写字母字符,后跟破折号,后跟0、1或2,但子表达式由破折号和0、1或2组成,零次或一次出现: [A-Z]{2}-[0-2]? 等等 结果表达式:

^[A-Z]{2}-[0-2]-[A-Z0-9]{2}-[A-Z0-9]{3}-[A-Z0-9]{7}-[A-Z0-9]{8}$
我离自己很近,但你比我快。回答得好,解释得好+1我太慢了。我认为有一种方法可以缩短a-Z0-9,就像对0-9使用\d一样,但我找不到它。我得到的最接近的是\w,但其中包含了太多的字符。感谢您提供了非常全面的答案!我现在了解了正则表达式的嵌套!