import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "\\b(?<url>(https?:.//?|www\\.).*?)(?:</ref>|[,]|[\\]]|[ ]|[ ]|[<])";
final String string = "<ref>Melon busk + shorten domain https://www.youtube.com/watch?v=2j3p_aDMTNg</ref> => Valid\n\n"
+ "<ref>vidéo privé https://www.youtube.com/watch?v=yZ-K7nCVnBI&playnext_from=TL&videos=osPknwzXEas&feature=sub</ref> => Invalid - privé\n\n"
+ "<ref>rick roll [https://youtu.be/dQw4w9WgXcQ?feature=youtube_gdata_playe http://youtu.be/dQw4w9WgXcQ?feature=youtube_gdata_playe]</ref> => Valid \n\n"
+ "<ref>ajout source redirect home page - https://youtube.com/watch?vi=dQw4w9WgXcQ&feature=youtube_gdata_player</ref> => Valid\n\n"
+ "<ref>rick roll avec share https://youtube.com/shorts/dQw4w9WgXcQ?feature=share'</ref> => Valid\n\n"
+ "<ref>Video indisponible (pas TOS, pas privé) - https://www.youtube-nocookie.com/embed/up_lNV-yoK4?rel=0%2C</ref> => Invalid\n\n"
+ "<ref>lien de chaine https://www.youtube.com/user/Scobleizer#p/u/1/1p3vcRhsYGo</ref> => Valid - lien de chaine\n\n"
+ "<ref>chaine indisponnible [https://www.youtube.com/ytscreeningroom?v=NRHVzbJVx8I http://www.youtube.com/ytscreeningroom?v=NRHVzbJVx8I]</ref> => Invalid\n\n"
+ "<ref>video indisponnible https://www.youtube.com/watch?v=yZ-K7nCVnBI&playnext_from=TL&videos=osPknwzXEas&feature=sub</ref> => Invalid\n\n"
+ "<ref>Embedded video https://www.youtube.com/embed/nas1rJpm7wY?rel=0</ref> => Valid\n\n"
+ "<ref> Multiple url reference [https://www.youtube.com/watch?v=ubNF9QNEQLA, https://www.youtube.com/watch?v=ubNF9QNEQLA]</ref> => Semi-valid - Multiple reference\n\n"
+ "<ref> nowiki referefence <nowiki>https://www.youtube.com/watch?v=ubNF9QNEQLA</nowiki></ref> => Semivalid - nowiki tag\n\n"
+ "<ref>playlist avec plusieurs videos https://www.youtube.com/playlist?list=PLUTbk4P4tNYQ99rLpgq9eKAjZpiQh7Ay4</ref> => valid - playlist\n\n"
+ "<ref>https://www.youtube.com/playlist?list=PLUTbk4P4tNYQ99rLpgq9eKAjZpiQh7Ay4</ref> => valid sans metadata\n\n"
+ "<ref>https://www.youtube.com/playlist?list=PLUTbk4P4tNYQ99rLpgq9eKAjZpiQh7Ay4 - https://www.youtube.com/playlist?list=PLUTbk4P4tNYQ99rLpgq9eKAjZpiQh7Ay4</ref> => multiple links\n";
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