正则表达式和 Java I/O
来源:互联网 发布:路飞 知乎 编辑:程序博客网 时间:2024/05/18 00:42
到目前为止,展示的大多数例子中,正则表达式都是应用于静态字符串的。下面的例子展示
了使用正则表达式在文件中搜寻匹配的一种方法。受 Unix 的 grep 的启发,JGrep.java
接受两个参数:一个文件名及我们想要匹配的正则表达式。输出结果显示发生匹配的所有行
以及在行内的匹配位置。
//:c12:JGrep.java
// A very simpleversion of the "grep" program.
// {Args:JGrep.java "\\b[Ssct]\\w+"}
importjava.io.*;
importjava.util.regex.*;
importjava.util.*;
importcom.bruceeckel.util.*;
public classJGrep {
public static void main(String[] args)throws Exception {
if(args.length < 2) {
System.out.println("Usage: javaJGrep file regex");
System.exit(0);
}
Pattern p = Pattern.compile(args[1]);
// Iterate through the lines of theinput file:
ListIterator it = newTextFile(args[0]).listIterator();
while(it.hasNext()) {
Matcher m = p.matcher((String)it.next());
while(m.find())
System.out.println(it.nextIndex() +": " +
m.group() + ": " +m.start());
}
}
} ///:~
在上例中,文件被作为一个 TextFile 对象(在本章前面已经介绍过)打开。由于一个 TextFile
对象内部的ArrayList 包含了文件中的行,由这个数组可以产生一个 ListIterator。因此,
其结果是一个可以让我们在文件的行之间进行移动(向前向后)的迭代器。
每个输入行都被用来产生一个 Matcher,并可以用 find()浏览结果。注意
ListIterator.nextIndex()用于跟踪行号。
测试参数打开 JGrep.java 文件,将其读入作为输入,然后搜索以[Ssct]开始的单词
- 正则表达式和 Java I/O
- 黑马程序员-->18_正则表达式和I/O相结合
- 第十二节 I/O与正则表达式
- Java 文件和 I/O
- java和正则表达式
- java和正则表达式
- 关于Java I/O和NIO
- Java NIO和操作系统I/O模型
- Java I/O流概念和使用
- Java异常处理和I/O处理
- Java 新I/O 通道和缓冲器
- Java流,文件和I/O
- java I/O流FileOutputStream和FileWriter
- 【随记】java I/O & byte 和 char
- 正则表达式(I)
- i os 正则表达式
- 正则表达式(I)
- Scala入门到精通——第十二节 I/O与正则表达式
- 验证手机号码
- IOS的OpenGL基础
- 在centos上安装php5.5+MySQL 5.5.32
- 分区表SQL TUNING时容易“被欺骗”的场景之一
- VIM 配置详解
- 正则表达式和 Java I/O
- Quartz+Spring 实例 配置
- 需要 StringTokenizer 吗?
- JSP之c:foreach
- c语言 运行cmd 查询某个文件夹内文件名并且输出
- Java I/O的总结
- 程序员面试100题---4.在二元树中找出和为某一值的所有路径(树)
- php二维码生成
- Apache 2.2 + Tomcat 泛域名解析 动态二级域名