import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "^yahoo\\.com?(?:(?!\\.[a-z]{2}).)*(?:.com?)?$\n";
final String string = "STACK ANSWER\n"
+ "^yahoo\\.com?(?:(?!\\.[a-z]{2}).)*(?:.com?)?$\n\n\n"
+ "?: NON CAPTURING GROUP - uses this to match but doesn't include\n"
+ "?! NEGATIVE LOOKAHEAD - use this to look ahead to anything dot (2 chars) dot (IE .fr.) \n"
+ ". ANY CHARACTER\n"
+ "* UNLIMITED # TIMES\n"
+ "?: use this to match : .com? (m is optional) (expression is optional) \n"
+ "$ ends \n\n"
+ "com.fr (followed by anything)* \n"
+ "with optional .co OR .com \n"
+ ".co.kr\n\n"
+ "KEEP\n"
+ "yahoo.es\n"
+ "yahoo.fr\n"
+ "yahoo.ca\n"
+ "yahoo.cm\n"
+ "yahoo.cn\n"
+ "yahoo.tw\n"
+ "yahoo.co.jp\n"
+ "yahoo.co.kr\n"
+ "yahoo.co.uk\n"
+ "yahoo.com.cn\n"
+ "yahoo.com.hk\n"
+ "yahoo.com.mx\n"
+ "yahoo.com.tw\n\n"
+ "REPLACE\n"
+ "yah.com\n"
+ "yahaoo.com\n"
+ "yahho.com\n"
+ "yahhoo.com\n"
+ "yaho.com\n"
+ "yahoo\n"
+ "yahoo,com\n"
+ "yahoo.c\n"
+ "yahoo.co\n"
+ "yahoo.co,\n"
+ "yahoo.com\n"
+ "yahoo.com,\n"
+ "yahoo.com.\n"
+ "yahoo.com'\n"
+ "yahoo.com/haltokariev\n"
+ "yahoo.com>\n"
+ "yahoo.com21yahoo.com\n"
+ "yahoo.comcom\n"
+ "yahoo.comheatdoc1123\n"
+ "yahoo.comj\n"
+ "yahoo.comm\n"
+ "yahoo.comn\n"
+ "yahoo.comok.nicholastrami9-12-15\n"
+ "yahoo.comom\n"
+ "yahoo.comy.net\n"
+ "yahoo.con\n"
+ "yahoo.coom\n"
+ "yahoo.copm\n"
+ "yahoo.cvom\n"
+ "yahoo.net\n"
+ "yahoo.ocm\n"
+ "yahoo.om\n"
+ "yahooc.om\n"
+ "yahoocom\n"
+ "yahoogroups.com\n"
+ "yahool.com\n"
+ "yahoomail.com\n"
+ "yahooo.com\n";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE | Pattern.CASE_INSENSITIVE);
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