2017-03-13 34 views
0

我試圖寫一個程序來識別下的「A *」VB.net認識到在「A *」

PROGRAM LOGIC弦弦:通過使用我想驗證狀態的輸入轉換圖。 如果狀態識別給定的模式規則。然後打印字符串被接受在* Else打印字符串不被接受。

這是我曾嘗試

 Dim regex As Regex = New Regex("\ba*\b") 
     Dim match As Match = regex1.Match(txt_input.Text) 
If match.Success Then 
     lbl_output.Text = txt_input.Text & " is accepted under rule 'a*'" 
Else 
      lbl_output.Text = txt_input.Text & " is not recognized" 
     End If 

的問題是,當我輸入字符串如SAA是會接受的。它允許任何角色出現在角色a之前。 我希望它只接受字符串中包含字符a。例如,AAA,AAA,

回答

1

爲什麼不試試下面的正則表達式:

^a+$ 

代碼:

Dim regex As Regex = New Regex("^a+$") 
Dim match As Match = regex.Match("aaaa") 
If match.Success Then 
    Console.WriteLine("match") 
Else 
    Console.WriteLine("no match") 
End If 

演示在這裏:

Rextester

+0

謝謝老兄!像魅力一樣工作,它解決了我的問題。 –

+0

你的回答失敗了regex.Match(「」)..它說「匹配」@SharmaHussein,PLZ測試很好。 –

+0

@MukulVarshney關於空字符串是否只包含'a',操作系統並不清楚。 –

0

下面試試

Dim regex As Regex = New Regex("\ba\S*\b")