2017-05-05 34 views
1

我是新來的正則表達式,並試圖創建一種語法檢查的形式。當我使用的代碼:正則表達式幫助/很少理解

public Regex Injection = new Regex(@"(\w*\s*[,.()?':]*)", RegexOptions.IgnoreCase); 
public Match IdMatch; 
public Match PassMatch; 

據我所知,這意味着可以是任何數字或單詞或者,空格或任何字符串中這些字符。我試圖用那麼當使用該串碼,所以

IdMatch = "001"; 
PassMatch = "123"; 

if (IdMatch.Success || PassMatch.Success) 
     { 
      MessageBox.Show("Error, please try again"); 
     } 
else 
     { 
      // Continue code 
     } 

出現的錯誤。爲什麼這是這些字符串違反了正則表達式,還是我誤解了某些東西?對不起,如果這是一個簡單的問題。任何幫助表示讚賞,如果我不清楚請說出來。謝謝。

+0

你在哪裏分配'IdMatch'和'PassMatch'? –

+0

'\ w * \ s *'表示任意數量的單詞後跟任意數量的空格。如果你想要任何數量的單詞或空格,你需要做'[\ w \ s] *'。爲其他角色擴展該概念。 – itsme86

+0

就在if語句之前。點擊按鈕,立即分配按鈕,然後發生if語句。 –

回答

1

嘗試增加了變化,以這樣的:

String value1 = "001"; 
String value2 = "123"; 
public Regex reg1 = new Regex(value1, @"(\w*\s*\d+[,.()?':]*)"); 
public Regex reg2 = new Regex(value2, @"(\w*\s*\d+[,.()?':]*)"); 

if (reg1.Success || reg2.Success) ...