2009-03-13 15 views
3

私はこのようなリンクと私のデータベース内のWebページのコンテンツの束を持っている:一部のテキストですべてのGuidを検索するにはどうすればよいですか?

<a href="/11ecfdc5-d28d-4121-b1c9-1f898ac0b72e">Link</a> 

のGuidの一意の識別子は、同じデータベース内ページのIDであること。

私はそれらのページをクロールして壊れたリンクを確認したいと思います。私は、これは正規表現のための仕事であることを理解

 
Function FindGuids(ByVal Text As String) As Collections.Generic.List(Of Guid) 
    ... 
End Function 

:私はページ上のすべてのGUIDの一覧を返すことができる機能が必要であることを行うには

。しかし、私は構文を知らない。

答えて

8
 
Function FindGuids(ByVal Text As String) As List(Of Guid) 
    Dim Guids As New List(Of Guid) 
    Dim Pattern As String = "[a-fA-F0-9]{8}-([a-fA-F0-9]{4}-){3}[a-fA-F0-9]{12}" 
    For Each m As Match In Regex.Matches(Text, Pattern) 
     Guids.Add(New Guid(m.Value)) 
    Next 
    Return Guids 
End Function 
2

リンク切れをチェックする簡単な方法は、例えば、私はhttp://www.totalvalidator.com/はそれを行うだろうと思います....があります:D

これも

static Regex isGuid = 
    new Regex(@"^(\{){0,1}[0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{12}(\}){0,1}$", RegexOptions.Compiled); 

、その後

static bool IsGuid(string candidate, out Guid output) 
{ 
bool isValid = false; 
output=Guid.Empty; 
if(candidate!=null) 
{ 

if (isGuid.IsMatch(candidate)) 
{ 
    output=new Guid(candidate); 
    isValid = true; 
} 
} 
return isValid; 
を助けることができます

}

+0

それは便利です。しかし、このウェブサイトの多くのページではログインが必要で、私が処理しなければならない他のビジネスルールがあります。 –

+0

合計バリデータ(上級者)も認証を行います! – inspite

+0

私はそれが実際にPro(高度ではない)バージョンだと思う – inspite

8

[0-9a-f {0-9a-f] {4} - [0-9a-f] {4} - [0-9a-f] {12}

3

expressoの無料コピーを入手し、それらを構築する方法をお教えください!

ここでは、最適化なしで10秒の試みだ大文字と小文字をチェックして、番号キャプチャグループを作成します。

([a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}) 

次に、あなただけのマッチしたグループを反復処理する必要が...