Регулярные выражения VBScript для проверки правильности IP-адреса с некоторыми дополнительными символами - PullRequest
2 голосов
/ 08 июня 2010

Как создать сценарий VB Синтаксис неправильного выражения для проверки VPparam (допустимость IP-адреса). Когда последняя октата IP-адреса находится в диапазоне между ip (xy) и между каждым IP, мы можем поместить разделитель «,» в порядкедобавить другой IP

пример VBparam

VBparam = 172.17.202.1-20

VBparam = 172.17.202.1-10,192.9.200.1-100

VBparam= 172.17.202.1-10,192.9.200.1-100,180.1.1.1-20

THX yael

1 Ответ

3 голосов
/ 09 июня 2010

cscript test.vbs

Обновлено: для проверки диапазона IP: 1-255

Обновлено: исправлено совпадение конца строки

Dim strByteMatch, strIpMatch, strPattern 
strByteMatch = "(25[0-5]|2[0-4]\d|[01]?\d\d?)"
strIpMatch = strByteMatch & "\." & strByteMatch & "\." & strByteMatch & _
"\.(" & strByteMatch & "|(" & strByteMatch & "-" & strByteMatch & "))"
strPattern = "^" & strIpMatch & "(," & strIpMatch & ")*$"


Test "172.17.202.1-20", strPattern
Test "172.17.202.1-10,192.9.200.1-100", strPattern
Test "172.17.202.1-10,192.9.200.1-100,180.1.1.1-20", strPattern
Test "172.17.202.1bug-20", strPattern            ' This should fail
Test "172.17.202.333,172.17.202.1", strPattern   ' This should fail

Sub Test(strString, strPattern)
    if RegExIsMatch(strString, strPattern) Then
        WScript.Echo "Test Pass"
    else
        WScript.Echo "Test Fail"
    end if
End Sub

Function RegExIsMatch(strString,strPattern)
    Dim RegEx
    RegExMatch=False

    Set RegEx = New RegExp                
    RegEx.IgnoreCase = True                
    RegEx.Global=True                   
    RegEx.Pattern=strPattern

    If RegEx.Test(strString) Then RegExIsMatch=True
End Function 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...