正则表达式的控制台或扫描仪?

时间:2015-02-16 15:31:39

标签: java regex

我正在尝试通过Oracle网站了解如何使用Regex API。

所以在下面的代码中,当我在我的机器上运行时,我只得到没有控制台的第一个输出语句,没有其他任何运行。谁能解释一下发生了什么?

另外,为什么我们会使用控制台而不是Regex扫描仪?

import java.io.Console;
import java.util.regex.Matcher;
import java.util.regex.Pattern;


public class RegexTestHarness {
    public static void main(String[] args){
        Console console = System.console();
        if (console == null) {
            System.err.println("No console.");
            System.exit(1);
        }
        while (true) {

            Pattern pattern = 
            Pattern.compile(console.readLine("%nEnter your regex: "));

            Matcher matcher = 
            pattern.matcher(console.readLine("Enter input string to search: "));

            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");
            }
        }
    }
}

1 个答案:

答案 0 :(得分:0)

我猜你是在Eclipse中运行它。 Eclipse环境不提供控制台。我建议您从终端手动运行程序或使用其他内容,例如BufferedReader