Regex Issues - Finding Qualified URLS

M

Mick Walker

Hi,
I am using the following function to match any URLS from within a string
containing the html of a webpage:

public List<string> DumpHrefs(String inputString)
{
Regex r;
Match m;
List<string> LstURLs = new List<string>();

r = new Regex("href\\s*=\\s*(?:\"(?<1>[^\"]*)\"|(?<1>\\S+))",
RegexOptions.IgnoreCase | RegexOptions.Compiled);
for (m = r.Match(inputString); m.Success; m = m.NextMatch())
{
LstURLs.Add(m.Groups[1].ToString());
}
return LstURLs;
}
However the problem with this, is it returns all links on the page, and
I only wish to return fully qualified links such as
http://www.domain.com/page.html and not relitive links.


I was given the following information by Kevin Spencer:
/* Start */
(?i)href\s*=\s*"?(?<1>http://[^"]+\"?[^>]*)>
First, rather than using an alternation, I just gave a rule that it could
have 0 or 1 quotes at the beginning and end. The (?i) indicates that the
regex is not case-sensitive. The group 1 consists of the character sequence
"http://" followed by any character that is not a quote mark, followed by
zero or 1 quote marks, followed by any character that is not ">". The
expression ends with the ">" character.
/* End */

I am unsure of how to incorperate the regex given by kevin into my
function, does anyone have any suggestions?

Regards
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads

Regex - Matching URLS 2
Regex help needed 1
How to use Regular Expression in .NET 2
RegEx Replace 1
Regex: replacing \n and spaces 4
Help with Regex 1
Regex help, please - Recognize quoted strings? 6
regex 3

Top