我正在尝试使用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种不同的陈述吗?似乎不合理,但我可能是错的。
答案 0 :(得分:9)
查看Regular Expression Language。您需要以下元素:
[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})?)?)?)?)?)?$