Very Simple Regex Question

Tags: ,



I have a very simple regex question. Suppose I have 2 conditions:

  1. url =http://www.abc.com/cde/def
  2. url =https://www.abc.com/sadfl/dsaf

How can I extract the baseUrl using regex?

Sample output:

  1. http://www.abc.com
  2. https://www.abc.com

Answer

Like this:

String baseUrl;
Pattern p = Pattern.compile("^(([a-zA-Z]+://)?[a-zA-Z0-9.-]+\.[a-zA-Z]+(:d+)?/");
Matcher m = p.matcher(str); 
if (m.matches())
    baseUrl = m.group(1);

However, you should use the URI class instead, like this:

URI uri = new URI(str);


Source: stackoverflow