集册 Java实例教程 捕获PatternSyntaxException并从中获取信息

捕获PatternSyntaxException并从中获取信息

欢马劈雪     最近更新时间:2020-01-02 10:19:05

465
捕获PatternSyntaxException并从中获取信息
/*from 时代Java*/

import java.io.Console;

import java.util.regex.Pattern;

import java.util.regex.Matcher;

import java.util.regex.PatternSyntaxException;


public class RegexTestHarness2 {


    public static void main(String[] args) {

        Pattern pattern = null;

        Matcher matcher = null;


        Console console = System.console();

        if (console == null) {

            System.err.println("No console.");

            System.exit(1);

        }

        while (true) {

            try {

                pattern = Pattern.compile(console

                        .readLine("%nEnter your regex: "));
//NowJava.com - 时代Java 提供

                matcher = pattern.matcher(console

                        .readLine("Enter input string to search: "));

            } catch (PatternSyntaxException pse) {

                console.format("There is a problem"

                        + " with the regular expression!%n");

                console.format("The pattern in question is: %s%n",

                        pse.getPattern());

                console.format("The description is: %s%n",

                        pse.getDescription());

                console.format("The message is: %s%n", pse.getMessage());

                console.format("The index is: %s%n", pse.getIndex());

                System.exit(0);

            }

            boolean found = false;

            while (matcher.find()) {

                console.format("I found the text" + " \"%s\" starting at "

                        + "index %d and ending at index %d.%n",

                        matcher.group(), matcher.start(), matcher.end());

                found = true;

            }

            if (!found) {

                console.format("No match found.%n");

            }

        }

    }

}


展开阅读全文