Java Grep库

有没有好的,简单的Java Grep库? 我并不反对本机代码或脚本,我会这样做,但就我的目的而言,吞吐量并不是一个大问题,将它们全部放在一个整洁的软件包中会很好。

更新:抱歉。 我知道java.regex,我现在正好相当忙碌和疲惫。 我正在寻找的东西是有效地结合java正则表达式与通过一组文件并重写它们。 我承认,这不会太难写。 如果已经存在,我只是很好奇。

我不知道一个复杂的grep库强文本,但你是对的:它写起来并不难。 我建议commons-ioString.matches(someRegex)

 public class Grep extends DirectoryWalker { public Grep(){ super(); } public List clean(File startDirectory){ List results = new ArrayList(); walk(startDirectory, results); return results; } protected boolean handleDirectory(File directory, int depth, Collection results){ // Decide if a (sub) directory will be handled for recursive search return true; } protected void handleFile(File file, int depth, Collection results) { LineIterator it = FileUtils.lineIterator(file, "UTF-8"); try{ while (it.hasNext()){ String line = it.nextLine(); if(line.matches("myRegEx")){ results.add(file); } } } finally {LineIterator.closeQuietly(it);} } } 

更新 Marco指出Unix4j是一个非常有趣的库,模拟unix流水线| 用Java方法链接。 支持grep以及cat, cd, cut, echo, find, grep, head, ls, sed, sort, tail, uniq, wc, barges

Unix4j还实现了一个(纯java)grep命令: http : //www.unix4j.org

 Unix4j.fromStrings("1:A", "2:B", "3:AB", "4:AC", "5:ABC").toFile("myFile.txt"); Unix4j.fromFile("myFile.txt").grep("AB").toStdOut(); >>> 3:AB 5:ABC 

是的。 Grep4j – 适用于Unix环境的grep lib,您也可以轻松地进行grep: http : //code.google.com/p/grep4j/

String.matches(someRegex); 内部使用java.util.regex.PatternMatcher