2011-07-26 172 views
0

我想用正則表達式來驗證Winforms文本框。尋找正則表達式

輸入蜇例如:

ZX1 OR N?V OR 2L? OR ?55

(帶或它們之間的三個符號長度字符串的任何序列)什麼是正則表達式,你會建議?

UPDATE: 嘗試這一個,但接縫處是它不是100%正確

string text = "ZX1 OR N?V OR 2L? OR ?55"; 
Regex r = new Regex("([0-9A-Z?]{3} OR)*[0-9A-Z?]{3}"); 
+2

請說明。你是否要求一個匹配'ZXC'和'NV'的正則表達式,其中'BL'後面跟着任何字符? –

+0

它可以是任何字符 – Joper

+0

您能澄清術語「符號」嗎?這是否意味着「任何非空間性格」?或只有某些字符? –

回答

1
"^\\s*\\S{3}(?:\\s+OR\\s+\\S{3})*\\s*$" 

應該在各種語言。

\\S 

匹配任何非空格字符,並且

\\s 

匹配任何空格字符,所以正則表達式上述空格字符包圍任何數量的由字符串"OR"分離的非空格字符三元組匹配。

^$用於確保它匹配整個字符串,因此如果要在較大的字符串內查找此模式,可以將其取出。

+0

這一個非常接近,但對於ZX1或N?V或2L返回true? OR **?5 ** – Joper

+0

@Joper,固定。我在那裏有'\\ S +'而不是'\\ S {3}'。 –

0

什麼是你可以有可能的符號列表?你最多可以有一個問號嗎? 這將匹配你給出的內容,但它也會匹配多個問號。

([A-Z?]{3} OR)*[A-Z?]{3} 
+0

問題更新 – Joper

0

試...

(([\w\S]{3}\s+)or\s+)+[\w\S]{3}