有没有其他方法在Java中使用正则表达式而不使用Pattern和Matcher?

时间:2015-03-20 02:25:52

标签: java regex matcher

我正在研究正则表达式。我想知道有没有其他方法在Java中使用它而不使用Matcher和Pattern?我已经谷歌了,但我找不到答案。提前谢谢!

2 个答案:

答案 0 :(得分:0)

如果有替代方案可以提供Pattern和Matcher的全部功能,那么为什么我们需要重复的API呢?

根据您的需要,Java确实在String类中提供了一些方便的API,用于一些简单和常见的操作,例如:

String.matches(regex);
String.replaceAll(regex, replacement);
String.replaceFirst(regex, replacement);
String.split(regex);

答案 1 :(得分:0)

Java SE 7及更高版本包含一个built-in Javascript interpreter,您可以调用它。 Javascript包含built-in regular expressions。您可以使用Javascript RE引擎而不是Java函数。

import java.util.ArrayList;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;

public class RESample {
    private final static String script =
            "var pattern = /;/;\n" +
            "var names = input;\n" +
            "var nameList = names.split(pattern);\n" +
            "nameList.forEach(function(name) { output.add(name);});";

    public static void main(String[] args) throws ScriptException {
        String input = "Tom;Dick;Harry";
        ArrayList<String> output = new ArrayList<String>();
        ScriptEngineManager factory = new ScriptEngineManager();
        ScriptEngine engine = factory.getEngineByName("JavaScript");
        engine.put("input", input);
        engine.put("output", output);
        engine.eval(script);
        for (String name : output) {
            System.out.println(name);
        }
    }
}