如果RichtextBox中的第一行不包含数字

时间:2010-09-19 19:08:20

标签: vb.net

我需要某种代码来检查richtextbox中的第一行是否包含数字。

这样的事情:

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

以下是我的richtextbox行的示例:

  1. 2245皇后西,ON,M6R2W7

  2. 12 RRw Rd,ON

  3. ON,M2N4E3

  4. 如果第一行包含4个或更多数字,它将使用它。在每个循环之后它将删除第1行。因此它将重复下一行。当我的代码到达第3行时,它没有找到4个或更多数字,它需要删除该行。

3 个答案:

答案 0 :(得分: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

然后,您可以通过解析以找到的第一个数字开头的字符串来提取这些“数字”。

答案 1 :(得分: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

答案 2 :(得分: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