2010-09-19 53 views
0

我需要某種代碼來檢查richtextbox中的第一行是否包含數字。如果RichtextBox中的第一行不包含數字

事情是這樣的:

If Richtextbot1.Lines(0) contains Numbers Then 
Goto startbot 
Else 
End If 

這裏是我的RichTextBox線的一個實例:

  1. 2245皇后街以西,ON,M6R2W7

  2. 12 RRW路,ON

  3. ON,M2N4E3

如果第一行包含4個或更多數字,它將使用它。在每個循環之後,它將刪除第1行。因此它重複下一行。當我的代碼到達第3行時,它找不到4個或更多數字,它需要刪除該行。

+0

可怕地模糊。 「ABC123XYZ」是否包含一個數字? 「單詞」之間是否存在某種分離。 – 2010-09-19 19:15:49

回答

0

您可以簡單地遍歷該行中的字符,以找到一個數字爲基礎,前提是如果您找到一個數字,您將能夠找到您所稱的「數字」。

Public Function DoesLineContainNumber() As Boolean 
    For index As Integer = 0 To RichTextBox1.Lines(0).Length - 1 
     If Char.IsDigit(RichTextBox1.Lines(0)(index)) Then 
      Return True 
     End If 
    Next 
    Return False 
End Function 

然後,您可以通過解析從找到的第一個數字開始的字符串來提取這些'數字'。

+0

謝謝西蒙。還有一件事,我該如何編輯該函數,以便檢查該行是否包含4個或更多數字?我應該在開始時提到這一點。 – Infodayne 2010-09-20 00:41:06

+0

你必須定義'編號'。你的意思是像1,2,3,4等單個數字......或者你的意思是像4,56,123,9876等數字......你的意思是十進制,十六進制,八進制或其他一些數字的基數?這些可以是像1.23,7.21e-3等浮點數嗎?一旦你通過數字來定義你的意思,那麼你可以編寫一個解析器或甚至一個正則表達式來確定該行中有多少個「數字」。 – 2010-09-20 00:56:38

+0

這是我的RichTextBox線的一個實例: 線路1:2245皇后街以西,ON,M6R2W7 線路2:12 RRW路,ON,M8R4W5 線路3:ON,M2N4E3 如果第一行包含4個或多個數字,它將使用它。在每個循環之後,它將刪除第1行。因此它重複下一行。當我的代碼到達第3行時,它找不到4個或更多數字,它需要刪除該行。 – Infodayne 2010-09-20 01:05:05

0

嘗試此

Dim firstLineContainsNumber As Boolean = ContainsNumber(RichTextBox1.Lines(0)) 
... 

Public Function ContainsNumber(input As String) As Boolean   
    Dim myRegex As New Regex("\d")   
    Return (myRegex.IsMatch(input))   
End Function 
0

嘗試此,我用火柴來檢查號碼在第一行上,然後爲每個匹配我添加1至一個計數變量:

Dim count As Integer 
    Dim matches As MatchCollection = Regex.Matches(RichTextBox1.Lines(0), "\d") 

    For Each m As Match In matches 
     For Each c As Capture In m.Captures 
      count += 1 
     Next 
    Next 

    If count >= 4 Then 
     MsgBox("contains 4 or more numbers") 
    End If 
相關問題