我正在尝试使用c#Regular Expression来匹配特定的字符串,但我无法弄清楚如何做到这一点.任何帮助表示赞赏.
我想要匹配的字符串如下所示,其中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-2]短跑: -
匹配x正好n次:x{n}
x?(...)例子:
[A-Z]{2}[A-Z]{2}-[A-Z]{2}-[0-2][A-Z]{2}(-[0-2])?结果表达式:
^[A-Z]{2}(-[0-2](-[A-Z0-9]{2}(-[A-Z0-9](-[A-Z0-9]{3}(-[A-Z0-9]{7}(-[A-Z0-9]{8})?)?)?)?)?)?$
Run Code Online (Sandbox Code Playgroud)