견적 RFC 1738 :
"반응식 이름 문자 시퀀스 구성 소문자."A "-"Z ", 숫자 및 문자 플러스 ("+ "), 기간 ("), 하이픈 ("-")이 허용됩니다. 복원력을 위해 URL을 해석하는 프로그램은 대문자를 스키마 이름의 소문자와 동일하게 취급해야합니다 (예 : "HTTP"및 "http"허용).
우수! 일치하는 정규식 :
href 문자열과 일치하는 경우 계속하십시오. 그렇지 않은 경우 앞에 "http : //"를 입력하십시오. 특정 세부 사항을 요구하지 않는 한 잔여 정신 체크는 당신 것입니다. 상대 링크에 대한 다른 의견 작성자의 생각에 주목하십시오.
편집 : 내가 잘못된 질문을 한 것을 ... 당신은 아마 당신이 그것을 처리 할 필요가 개별 토큰으로 텍스트까지 분할 아무것도하지 않는 것을 의심하기 시작 했어. Looking for C# HTML parser
편집을 참조하십시오 : 대소 문자를 구분 일치를 사용하여, 모두를 무시하고 텍스트 만 공격에서 블라인드 시도,
/(<a +href *= *")(.*?)(" *>)/
두 번째 백 참조 /^[a-zA-Z0-9+.-]+:\/\//
일치하는 경우로, 아무것도하지 않습니다. 일치하지 않을 경우,이 C#을 구문 아니다
$1 + "http://" + $2 + $3
로 교체,하지만 너무 많은 노력을하지 않고에서 번역해야한다.
Dim myUrl as string = "someUrlString".ToLower()
If Not myUrl.Contains("http://") AndAlso Not myUrl.Contains("https://") AndAlso Not myUrl.Contains("ftp://") Then
'Execute your logic to prepend the proper protocol
myUrl = "http://" & myUrl
End If
에 보관 : 당신이 잠재적으로 지역의 링크를 엉망으로, 당신은 항상 문자열 정규화 된 도메인 이름이 될 것이라는 점을 보장 할 수와 관련되지 않은 경우
흠 ... 어떻게 여기에 대해? 'on this site' – Piskvor
로컬 사이트를 참조하는 경우 어떻게 할 것입니까? 마찬가지로 Home 편집 : 너무 늦었습니다 ... –
이 특별한 경우에는 문제가되지 않지만 그것을 지적 해 주셔서 감사합니다. –