在某个txt文档中查找符合某正则表达式的内容

//TextFile 类

import java.util.*;
import java.io.*;

public class TextFile extends ArrayList
 {

  /**
   * @param args
   */
  public static String read(String filename) throws IOException
  {
   BufferedReader br = new BufferedReader(new FileReader(filename));
   StringBuffer sb = new StringBuffer();
   String s;
   while ((s = br.readLine()) != null)
    {
     sb.append(s);
     sb.append("/n");
    }
   br.close();
   return sb.toString();
  }
  public TextFile(String filename) throws IOException
  {
   super(Arrays.asList(read(filename).split("/n")));
  }
  public static void main(String[] args)
   {
    // TODO 自动生成方法存根

   }

 }
 

//在JGrep中开始查找

import java.util.regex.*;
import net.icafe8.file.TextFile;
import java.util.*;
import java.io.*;

public class JGrep
 {

  public static void main(String[] args)
   {
    // TODO 自动生成方法存根
    if (args.length<2)
     {
      System.out.println("Usage: java JGrep filename regualexpression");
      System.exit(0);
     }
    Pattern p = Pattern.compile(args[1]);
    try
     {
      ListIterator it = new TextFile(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());
         }
       }
     }catch (IOException e)
      {
       throw new RuntimeException(e);
      }
   }
 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值