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