2016-03-02 2 views
0

У меня есть строка, как, что "CP23332200-01"Как сравнить строку с форматом? vb.net

Я разделил мою строку, и я получаю последние 5 символов: "00-01", как что:

Dim результат As String = PARTNO

   'for content parts 
       If PartNo.Contains("CP") Then 

        If PartNo.Length > 5 Then 
         result = PartNo.Substring(PartNo.Length - 5) 
        End If 



       End If 

Результат = «00-01»

Как я сравнить эту строку с форматом, как, что: «ИНТ» - «INT» два числа и два числа Я хочу вас заверить, что строка «00 -01 "является всегда этот формат. Примечание * Результат в не всегда «00-01», но формат всегда две цифры - и два числа

ответ

2

Вы можете использовать RegEx для этого:

Imports System.Text.RegularExpressions 

'Create one regex obj 
Dim regex as new Regex("^[0-9]{2}-[0-9]{2}$") 
'... 

If PartNo.Contains("CP") Then 
    If PartNo.Length > 5 Then 
     result = PartNo.Substring(PartNo.Length - 5) 
    End If 

    'RegEx match against result 
    If regex.IsMatch(result) Then 
     LBL_ERR.Text = "asdas" 
    Else 
     Exit Sub 
    End If 
End If 

Объяснение:

^ = начало строки

[0-9] = только цифры позволили

{2} = точные две цифры позволили

$ = конец строки

Я проверил это с некоторыми числами, но вы должны проверить регулярное выражение here

+0

Да, работайте и так! благодаря – Vladut

0
   If PartNo.Contains("CP") Then 

        If PartNo.Length > 5 Then 
         result = PartNo.Substring(PartNo.Length - 5) 
        End If 

        If result Like "##-##" Then 
         LBL_ERR.Text = "asdas" 
        Else 
         Exit Sub 
        End If 


       End If 

результат моей проблемы заключается в том, что: «#» заменяет один символ

1

Если вы не хотите регулярное выражение, тогда это тоже должно работать:

If PartNo.Contains("CP") Then 

    If PartNo.Length > 5 Then 
     result = PartNo.Substring(PartNo.Length - 5) 
    End If 

    If result.Contains('-') Then 
     Dim parts As String() = result.Split(New Char() {"-"c}) 
     If IsNumeric(parts(0)) and IsNumeric(parts(1)) 
       LBL_ERR.Text = "asdas" 
     End if 
    Else 
    Exit Sub 
    End If 

End If 

Или еще яснее версия:

If PartNo.Contains("CP") Then 

    If PartNo.Length > 5 Then 
     result = PartNo.Substring(PartNo.Length - 5) 
    End If 
dim result as boolean = CheckForNumeric(result) 
    If result = true then 
    LBL_ERR.Text = "asdas" 
    Else 
    Exit Sub 
    End If 
End If 



Private Function CheckForNumeric(ByVal result as string) As Boolean 
If result.Contains('-') Then 
      Dim parts As String() = result.Split(New Char() {"-"c}) 
      If IsNumeric(parts(0)) and IsNumeric(parts(1)) 
       return true 
      End if 
End if 
return false 
End Function 
Смежные вопросы