import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "(https?://[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}[-a-zA-Z0-9()@:%_+.~#?&/=]*/?([-a-zA-Z0-9()@%_+~#?&/=]|\\b))";
final String string = "Visit https://example.com for more information.\n"
+ "Check out https://github.com/user/repo, it's really good.\n"
+ "The API endpoint is https://api.service.com/v1/data; use it carefully.\n"
+ "Go to https://example.com: it has everything you need.\n"
+ "See https://docs.example.com? It explains the process.\n"
+ "Try https://example.com! It's amazing.\n"
+ "The site (https://example.com) is down for maintenance.\n"
+ "Links like https://example.com are common in emails.\n"
+ "Visit https://example.com/path/file.pdf and download it.\n"
+ "The URL https://example.com/api?key=123 returns JSON data.\n"
+ "Check https://example.com, https://test.org, and https://demo.net.\n"
+ "Go to https://example.com... wait, that's the wrong link.\n"
+ "The website https://example.com-- actually, never mind.\n"
+ "Visit https://example.com/path?q=value&r=2 for the search results.\n"
+ "See https://example.com/file.html, then click the button.\n"
+ "The documentation at https://docs.example.com; section 4.2 explains it.\n"
+ "Try https://example.com:8080/api/v1/users for user data.\n"
+ "Links: https://example.com, https://test.org; both are useful.\n"
+ "Go to https://example.com/path/to/resource, download the file.\n"
+ "The URL https://example.com/path#section contains the answer.\n"
+ "Visit https://example.com/very/long/path/here for details.\n"
+ "Check https://sub.domain.example.com for subdomain content.\n"
+ "The site https://example.com/path.with.dots has interesting content.\n"
+ "Go to https://example.com/path-with-dashes?, it's well organized.\n"
+ "See https://example.com/path_with_underscores for more info.\n"
+ "The endpoint https://api.example.com/v2/data?format=json returns data.\n"
+ "Visit https://example.com/file.tar.gz to download the archive.\n"
+ "Check https://example.com/path?param=value.with.dots for configuration.\n"
+ "The URL https://192.168.1.1:8080 is for local testing.\n"
+ "Go to https://example.com/path/ (note the trailing slash).";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
final Matcher matcher = pattern.matcher(string);
while (matcher.find()) {
System.out.println("Full match: " + matcher.group(0));
for (int i = 1; i <= matcher.groupCount(); i++) {
System.out.println("Group " + i + ": " + matcher.group(i));
}
}
}
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Java, please visit: https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html