fork download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6. import java.util.regex.Matcher;
  7. import java.util.regex.Pattern;
  8.  
  9. /* Name of the class has to be "Main" only if the class is public. */
  10. class Ideone
  11. {
  12. public static void main (String[] args) throws java.lang.Exception
  13. {
  14. final String regex = "(?:\\b(?:dog|cat)s?|\\G)\\s+(?:((?!(?:dog|cat)s?\\b)\\w{3,})|\\S+)(?=.*?\\s+(?:dog|cat)s?\\b)";
  15. final String string = "Dogs are nice animals. Cats are not. My cat ate a mice. My dog once ate a fry. My dog once ate a fry. My cat ate a mice. The catalog of the best dogs is around here somewhere.";
  16.  
  17. final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE | Pattern.CASE_INSENSITIVE);
  18. final Matcher matcher = pattern.matcher(string);
  19.  
  20. while (matcher.find()) {
  21. for (int i = 1; i <= matcher.groupCount(); i++) {
  22. if (matcher.group(i) != null)
  23. System.out.println( matcher.group(i));
  24. }
  25. }
  26. }
  27. }
Success #stdin #stdout 0.05s 2184192KB
stdin
Standard input is empty
stdout
are
nice
animals
are
not
ate
mice
once
ate
fry
once
ate
fry
ate
mice