/*

 * David Lin

 * West Chester East High School

 * Intermediate 5

 * 2/11/2011

 * ACSL Search

 */

 

import java.util.Scanner;

import java.util.regex.*;

 

public class acsl {

      public static void main(String[] args) {

            Scanner reader = new Scanner(System.in);

            String[] input = new String[4];

            Boolean found = false;

            String search;

            String output = "";

            print("Enter your 4 items to be searched on separate lines:");

            for (int i = 0; i < 4; i++) {

                  input[i] = reader.nextLine();

            }

            for (int a = 0; a < 5; a++) {

                  // reset variables

                  output = "";

                  found = false;

                 

                  // input search term

                  System.out.print("Enter search term number " + (a+1) + ": ");

                  search = reader.nextLine();

                 

                  // convert commands to regex characters

                  search = search.replaceAll("\\?", "\\.");

                  search = search.replaceAll("\\*", "\\.*");

                 

                  // check each of the 4 strings for a match

                  for (int z = 0; z < 4; z++) {

                        Pattern searchterm = Pattern.compile(search);

                        Matcher inputterm = searchterm.matcher(input[z]);

                        boolean bool = inputterm.matches();

       

                        if (bool) {

                              // add matched string to output string

                              output = output + input[z] + " ";

                             

                              found = true;

                        }

                  }

                  if (found) {

                        print(output);

                  } else {

                        print("No match");

                  }

            }

      }

 

      public static void print(String input) {

            System.out.println(input);

      }

}