方法 : Visual Basic の文字列に含まれている URI を識別する

更新 : 2007 年 11 月

ここでは、簡単な正規表現を使って文字列内の URI (Uniform Resource Identifier) を識別する方法を示します。誤認識 (誤って URI と識別されるテキスト) の数を減らすために、URI が厳密な形式であると仮定します。このため、有効な URI が識別されない認識漏れが起こる可能性があります。

使用例

厳密な URI 形式は、([^=":\s]+:)?//[^\s"]+ という正規表現に一致します。これは、次の条件を意味します。

  1. 以下の文字が現れる可能性があります。

    1. =、"、:、または空白文字ではない 1 つ以上の文字

    2. それに続く : 文字

  2. 文字列 // がこれに続きます。

  3. 引用符または空白文字ではない 1 つ以上の文字があります。

Regex オブジェクトが、この正規表現によって初期化されます。

Regex オブジェクトの Matches メソッドは、入力文字列で正規表現に一致したすべての部分を含むMatchCollection オブジェクトを返します。

    ''' <summary>Identifies URIs in text.</summary>
    ''' <param name="text">Text to parse.</param>
    ''' <remarks>Displays each URI in the input text.</remarks>
    Sub IdentifyURIs(ByVal text As String)
        Dim uriRegex As New Regex("([^="":\s]+:)?//[^\s""]+")
        Dim output As String = ""
        For Each m As Match In uriRegex.Matches(text)
            output &= m.Value & vbCrLf
        Next
        MsgBox(output)
    End Sub

この例では、Imports ステートメントを使って System.Text.RegularExpressions 名前空間をインポートすることを前提としています。詳細については、「Imports ステートメント (.NET 名前空間および型)」を参照してください。

参照

処理手順

方法 : Visual Basic の HTML 文字列に含まれているハイパーリンクを識別する

方法 : 文字列から無効な文字を取り除く

その他の技術情報

Visual Basic における文字列の解析