43 lines
943 B
Java
43 lines
943 B
Java
//: strings/JGrep.java
|
|
// A very simple version of the "grep" program.
|
|
// {Args: JGrep.java '\\b[Ssct]\\w+'}
|
|
import java.util.regex.*;
|
|
import net.mindview.util.*;
|
|
|
|
public class JGrep {
|
|
public static void main(String[] args) throws Exception {
|
|
if(args.length < 2) {
|
|
System.out.println("Usage: java JGrep file regex");
|
|
System.exit(0);
|
|
}
|
|
Pattern p = Pattern.compile(args[1]);
|
|
// Iterate through the lines of the input file:
|
|
int index = 0;
|
|
Matcher m = p.matcher("");
|
|
for(String line : new TextFile(args[0])) {
|
|
m.reset(line);
|
|
while(m.find())
|
|
System.out.println(index++ + ": " +
|
|
m.group() + ": " + m.start());
|
|
}
|
|
}
|
|
} /* Output: (Sample)
|
|
0: strings: 4
|
|
1: simple: 10
|
|
2: the: 28
|
|
3: Ssct: 26
|
|
4: class: 7
|
|
5: static: 9
|
|
6: String: 26
|
|
7: throws: 41
|
|
8: System: 6
|
|
9: System: 6
|
|
10: compile: 24
|
|
11: through: 15
|
|
12: the: 23
|
|
13: the: 36
|
|
14: String: 8
|
|
15: System: 8
|
|
16: start: 31
|
|
*///:~
|