[英]c# Conditional Regular Expression String Match
我正在尝试使用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
(该级别的部分字符。)
到目前为止(实际上不是那么远),我可以作为匹配@"^[AZ]{2}"
,但是我不确定如何有条件地进行匹配(我不确定是否有条件地使用了正确的术语)字符串的其余部分,但前提是它在那里。 为此,我需要写7个不同的语句吗? 似乎不合理,但我可能是错的。
看看正则表达式语言 。 您需要以下元素:
[AZ]
[A-Z0-9]
[0-2]
破折号: -
精确匹配x次n次: x{n}
x?
(
... )
例子:
[AZ]{2}
[AZ]{2}-
[AZ]{2}-[0-2]
[AZ]{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})?)?)?)?)?)?$
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.