[英]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.