import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "\\|\\s+\\[(?P<domain>(?:[^\\|]|\\\\\\|)+)\\]\\((?P<url>https?:\\/\\/(?:www\\.)?[^\\)]+)\\)\\s+\\|\\s+(?P<cloudflare>(?:[^\\|]|\\\\\\|)+)\\s+\\|\\s+(?P<country>(?:[^\\|]|\\\\\\|)+)\\s+\\|\\s+(?P<isp>(?:[^\\|]|\\\\\\|)+)\\s+\\|\\s+(?P<branch>(?:[^\\|]|\\\\\\|)+)\\|";
final String string = "| Link | Cloudflare | Country | ISP | Branch | \n"
+ "| -------- | ---------- | ----------- | ----- | ----- |\n"
+ "| [gh.akisblack.dev](https://gh.akisblack.dev) | No | Germany | OVHcloud | master |\n"
+ "| [gothub.esmailelbob.xyz](https://gothub.esmailelbob.xyz) | No | Canada | OVHcloud | master |\n"
+ "| [gothub.no-logs.com](https://gothub.no-logs.com/) | No | Sweden | Vultr | master |\n"
+ "| [gh.odyssey346.dev](https://gh.odyssey346.dev) | No | France | OVHcloud (Trolling Solutions) | master |\n"
+ "| [gh.phreedom.club](https://gh.phreedom.club) | No | Iceland | Flokinet | master |\n"
+ "| [gothub.projectsegfau.lt](https://gothub.projectsegfau.lt) | No | GeoDNS (Luxembourg/USA/India) | BuyVM/Digital Ocean/Airtel | master |\n"
+ "| [gh.riverside.rocks](https://gh.riverside.rocks) | No | USA | Comcast | master |\n"
+ "| [gh.fascinated.cc](https://gh.fascinated.cc) | Yes | Germany | Contabo | master |\n"
+ "| [gothub.lunar.icu](https://gothub.lunar.icu) | Yes | Germany | Unesty | master |\n"
+ "| [gothub.xbdm.fun](https://gothub.xbdm.fun) | Yes | Germany | Hetzner | master |\n"
+ "| [dev.gh.akisblack.dev](https://dev.gh.akisblack.dev) | No | Germany | OVHcloud | dev |\n"
+ "| [gh.creller.net](https://gh.creller.net) | No | Scotland | British Telecommunications PLC | dev |\n"
+ "| [gh.dev.odyssey346.dev](https://gh.dev.odyssey346.dev) | No | France | OVHcloud (Trolling Solutions) | dev |\n"
+ "| [gothub.dev.projectsegfau.lt](https://gothub.dev.projectsegfau.lt) | No | Luxembourg | BuyVM | dev |";
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