SSISO Community

시소당

Java Regular Expression : find 2

/*  From  http://java.sun.com/docs/books/tutorial/index.html  */

/*
  *  Copyright  (c)  2006  Sun  Microsystems,  Inc.  All  Rights  Reserved.
  *
  *  Redistribution  and  use  in  source  and  binary  forms,  with  or  without
  *  modification,  are  permitted  provided  that  the  following  conditions  are  met:
  *
  *  -Redistribution  of  source  code  must  retain  the  above  copyright  notice,  this
  *    list  of  conditions  and  the  following  disclaimer.
  *
  *  -Redistribution  in  binary  form  must  reproduce  the  above  copyright  notice,
  *    this  list  of  conditions  and  the  following  disclaimer  in  the  documentation
  *    and/or  other  materials  provided  with  the  distribution.
  *
  *  Neither  the  name  of  Sun  Microsystems,  Inc.  or  the  names  of  contributors  may
  *  be  used  to  endorse  or  promote  products  derived  from  this  software  without
  *  specific  prior  written  permission.
  *
  *  This  software  is  provided  "AS  IS,"  without  a  warranty  of  any  kind.  ALL
  *  EXPRESS  OR  IMPLIED  CONDITIONS,  REPRESENTATIONS  AND  WARRANTIES,  INCLUDING
  *  ANY  IMPLIED  WARRANTY  OF  MERCHANTABILITY,  FITNESS  FOR  A  PARTICULAR  PURPOSE
  *  OR  NON-INFRINGEMENT,  ARE  HEREBY  EXCLUDED.  SUN  MIDROSYSTEMS,  INC.  ("SUN")
  *  AND  ITS  LICENSORS  SHALL  NOT  BE  LIABLE  FOR  ANY  DAMAGES  SUFFERED  BY  LICENSEE
  *  AS  A  RESULT  OF  USING,  MODIFYING  OR  DISTRIBUTING  THIS  SOFTWARE  OR  ITS
  *  DERIVATIVES.  IN  NO  EVENT  WILL  SUN  OR  ITS  LICENSORS  BE  LIABLE  FOR  ANY  LOST
  *  REVENUE,  PROFIT  OR  DATA,  OR  FOR  DIRECT,  INDIRECT,  SPECIAL,  CONSEQUENTIAL,
  *  INCIDENTAL  OR  PUNITIVE  DAMAGES,  HOWEVER  CAUSED  AND  REGARDLESS  OF  THE  THEORY
  *  OF  LIABILITY,  ARISING  OUT  OF  THE  USE  OF  OR  INABILITY  TO  USE  THIS  SOFTWARE,
  *  EVEN  IF  SUN  HAS  BEEN  ADVISED  OF  THE  POSSIBILITY  OF  SUCH  DAMAGES.
  *
  *  You  acknowledge  that  this  software  is  not  designed,  licensed  or  intended
  *  for  use  in  the  design,  construction,  operation  or  maintenance  of  any
  *  nuclear  facility.
  */

import  java.io.BufferedReader;
import  java.io.FileNotFoundException;
import  java.io.FileReader;
import  java.io.IOException;
import  java.util.regex.Matcher;
import  java.util.regex.Pattern;
import  java.util.regex.PatternSyntaxException;

public  final  class  RegexTestHarness2  {

    private  static  String  REGEX;

    private  static  String  INPUT;

    private  static  BufferedReader  br;

    private  static  Pattern  pattern;

    private  static  Matcher  matcher;

    private  static  boolean  found;

    public  static  void  main(String[]  argv)  {
        initResources();
        processTest();
        closeResources();
    }

    private  static  void  initResources()  {
        try  {
            br  =  new  BufferedReader(new  FileReader("regex.txt"));
        }  catch  (FileNotFoundException  fnfe)  {
            System.out
                    .println("Cannot  locate  input  file!  "  +  fnfe.getMessage());
            System.exit(0);
        }
        try  {
            REGEX  =  br.readLine();
            INPUT  =  br.readLine();
        }  catch  (IOException  ioe)  {
        }

        try  {
            pattern  =  Pattern.compile(REGEX);
            matcher  =  pattern.matcher(INPUT);
        }  catch  (PatternSyntaxException  pse)  {
            System.out
                    .println("There  is  a  problem  with  the  regular  expression!");
            System.out.println("The  pattern  in  question  is:  "
                    +  pse.getPattern());
            System.out.println("The  description  is:  "  +  pse.getDescription());
            System.out.println("The  message  is:  "  +  pse.getMessage());
            System.out.println("The  index  is:  "  +  pse.getIndex());
            System.exit(0);
        }

        System.out.println("Current  REGEX  is:  "  +  REGEX);
        System.out.println("Current  INPUT  is:  "  +  INPUT);
    }

    private  static  void  processTest()  {
        while  (matcher.find())  {
            System.out.println("I  found  the  text  \""  +  matcher.group()
                    +  "\"  starting  at  index  "  +  matcher.start()
                    +  "  and  ending  at  index  "  +  matcher.end()  +  ".");
            found  =  true;
        }

        if  (!found)  {
            System.out.println("No  match  found.");
        }
    }

    private  static  void  closeResources()  {
        try  {
            br.close();
        }  catch  (IOException  ioe)  {
        }
    }
}

678 view

4.0 stars