import java.util.regex.Matcher; import java.util.regex.Pattern; public class Challenge { public static void printParseableIntegers(String s) { Pattern p = Pattern.compile("\\b[-+]?\\d+\\b"); Matcher m = p.matcher(s); m.results().forEach(e -> System.out.println(e.group())); } public static void main(String[] args) { //how to stop the period? printParseableIntegers("-45 + 56 889 4a5 5.6"); printABAlternating("ababab a bababa b bab aba baa aab abc"); printValidHexCodes("0xFFFFCC #FFF8E7 0xaabbcc #aaBBCC #FFFFF #00FF0 0xabc"); printFiveInOrder("facetiously autoeciously unseriously aeration"); printAlreadyBeenChewed("cabcab c a b bcabcabc ca bc cba aac cca abcd"); } public static void printABAlternating(String s) { Pattern p = Pattern.compile("\\bb?(ab)*a?\\b"); Matcher m = p.matcher(s); m.results().forEach(e -> System.out.println(e.group())); } public static void printValidHexCodes(String s) { Pattern p = Pattern.compile("(0x|[#])[0-9a-fA-F]{6}\\b"); Matcher m = p.matcher(s); m.results().forEach(e -> System.out.println(e.group())); } public static void printFiveInOrder(String s) { Pattern p = Pattern.compile("\\w*a\\w*e\\w*i\\w*o\\w*u\\w*"); Matcher m = p.matcher(s); m.results().forEach(e -> System.out.println(e.group())); } public static void printAlreadyBeenChewed(String s) { Pattern p = Pattern.compile("\\b(c|bc)?(abc)*(a|ab)?\\b"); Matcher m = p.matcher(s); m.results().forEach(e -> System.out.println(e.group())); } }