首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

查找文件中字符串(正则表达式兑现)

2012-08-21 
查找文件中字符串(正则表达式实现)引言:今天群友问到一个查找文件流中广播IP的问题,可以使用indexOf(),sub

查找文件中字符串(正则表达式实现)
引言:

    今天群友问到一个查找文件流中广播IP的问题,可以使用indexOf(),substring()实现。写法也不难,只是维护比较麻烦。因此顺手写了段样例代码,欢迎新手围观。

    此处略去,吹正则有多强大的200字,然后突出一下,遇到查找字符串问题的时候,建议先考虑正则。

正文:

    不提取方法了,直接放在main里面看吧。另外,为了方便运行用了字符串装配了个reader,可能存在编码问题,这里提一下就不叨叨了。

    代码如下:

/* * Author :zhaoningbo * Date   :2012-4-9 下午04:17:17 * Email  :zhaoningbo@hotmail.com * Blog   :http://zhaoningbo.iteye.com/ */package com.number.util;import java.io.BufferedReader;import java.io.IOException;import java.io.StringReader;import java.util.regex.Matcher;import java.util.regex.Pattern;public class BufferedRegex {    public static void main(String[] args) throws IOException {        String patt = "broadcast \\d{1,3}.\\d{1,3}.\\d{1,3}.\\d{1,3} ";        BufferedReader reader = new BufferedReader(                new StringReader(                        "netmask ffffff00 broadcast 192.168.1.255 \n " +                        "ether 0:1e:67:7:8:d \n " +                        "..........ff00 broadcast 192.168.200.255 ...." +                        "...broadcast 192.168.200.100 \n"));        Pattern pattern = Pattern.compile(patt);        String strTemp;        while ((strTemp = reader.readLine()) != null) {            Matcher matcher = pattern.matcher(strTemp);            while (matcher.find()) {                System.out.print("----" + matcher.group());            }            System.out.println("END_LINE");        }    }}

在jdk1.6_21运行结果:
----broadcast 192.168.1.255 END_LINEEND_LINE----broadcast 192.168.200.255 ----broadcast 192.168.200.100 END_LINE


参考:
java常用正则表达式


热点排行