次の例で使用している正規表現"\d{1,3}(\.\d{1,3}){3}(/\d{1,2})?"は、IPアドレス(IPv4)となりうる文字列にマッチします。 この正規表現は、1~3桁の数字(\d{1,3})に続けて、ピリオドと1~3桁の数字の組み合わせが三回続き((\.\d{1,3}){3})、場合によってはスラッシュと1~2桁の数字が後続する((/\d{1,2})?)文字列にマッチします。

この正規表現では、IPアドレスとしては不正な値の文字列にもマッチします。 具体的には、\dを使っているため全角数字にもマッチする、\d{1,3}には999などのIPアドレスとしてはありえない数字にもマッチする、^を使っていないため文字列の途中でもマッチするなど、完全ではない点に注意してください。

正規表現を使って文字列がIPアドレスの形式となっている箇所を含むかどうか判定する
Imports System
Imports System.Text.RegularExpressions

Class Sample
  Shared Sub Main()
    Dim words() As String = New String() { _
      "0.0.0.0/8", _
      "127.0.0.1", _
      "192.168.1.1", _
      "192.168.0.0/16", _
      "255.255.255.255", _
      "new IPAddress(""192.168.1.1"")", _
      "localhost", _
      "192.168.000.000", _
      "192.168.999.999", _
      "192.168.999.999/99", _
      "3.141593", _
      "2010.11.11", _
      "127.0.0.1", _
      "192.168.0.10/24" _
    }

    For Each word As String In words
      Console.Write("{0,-30} ", word)

      If Regex.IsMatch(word, "\d{1,3}(\.\d{1,3}){3}(/\d{1,2})?")
        Console.WriteLine("O")
      Else
        Console.WriteLine("X")
      End If
    Next
  End Sub
End Class
実行結果
0.0.0.0/8                      O
127.0.0.1                      O
192.168.1.1                    O
192.168.0.0/16                 O
255.255.255.255                O
new IPAddress("192.168.1.1")   O
localhost                      X
192.168.000.000                O
192.168.999.999                O
192.168.999.999/99             O
3.141593                       X
2010.11.11                     X
127.0.0.1                      O
192.168.0.10/24                O