2013-07-25 1 views
0

제목이 정확하지 않을 수 있지만 그것을 설명하는 더 좋은 방법을 생각하지 못했습니다.VB.NET - 특정 문자까지 텍스트 선택

많은 웹 사이트의 HTML 소스 코드를 사용하는 클라이언트 프로젝트를 진행 중입니다.

현재 소스가 표시되어 있지만 소스에서 첫 번째 URL을 선택한 다음 Label에 표시 할 수 있어야합니다.

내 문제입니다. VB 텍스트 상자는 하이퍼 링크를 표시하지 않으며 (내가 아는 한) 문자열에서 하이퍼 링크를 선택하는 도구가 없습니다.

여러 줄 텍스트 상자에서 첫 번째 하이퍼 링크를 가져올 수 있어야합니다. 링크는 종종 매우 길 수 있으며 일반적으로 .com 또는 .net으로 끝나지 않으며, 그저 도메인이고 숫자와 문자가 긴 조합입니다. 이 URL을 추출 할 수 있어야합니다. HTML 프레임 안에 들어가서 링크가 어떤 웹 사이트를 방문했는지에 따라 변경됩니다. 그래서 내가 정말로 찾고있는 것은 HTML 프레임을 링크로 추출하여 과잉 HTML을 제거하는 것입니다 원시 링크를 남겼습니다.

나는 최선을 다해 설명하려고 노력했다. 당신이 명확한 설명이 필요하면 알려주세요.

+0

그래서 당신에게 반환하기 위해 정규식 [정규 표현식]을 사용할 수 있지만 정규식을 사용하여 문자열에서 링크를 추출해야합니까? – Renan

+2

이 간단한 경우에 정규식을 사용하지 않고도 빠져 나올 수 있지만 [HTML 민첩성 팩] (http://htmlagilitypack.codeplex.com/)을 확인해야합니다. – canon

+0

@canon : 질문은 HTML 소스 코드가 승인되는지 여부를 명확하게 밝히지는 않습니다. 특히, * 출처의 * 첫 번째 URL은 텍스트가 아닌 링크되지 않은 URL을 포함 할 수 있습니다 (URL이 링크를 허용하지 않는 포럼에 표시되기도 함). –

답변

0

귀하의 질문은 불분명하지만 당신은 꽤 많이 사용 HtmlAgilityPack하거나 페이지

에서 당신이 원하는 예를

' The input string. 
Dim value As String = "/content/alternate-1.aspx" 

' Invoke the Match method. 
Dim m As Match = Regex.Match(value, _ 
       "content/([A-Za-z0-9\-]+)\.aspx$", _ 
       RegexOptions.IgnoreCase) 

' If successful, write the group. 
If (m.Success) Then 
    Dim key As String = m.Groups(1).Value 
    Console.WriteLine(key) 
End If 
관련 문제