各位高手,请问怎样用java实现一个基于正则表达式的查找程序呢?

解决方案 »

  1.   

    可以去看看horstmann写得core java Volum I 第12章最后一节Regular Expressions: import java.io.*;
     import java.net.*;
     import java.util.regex.*; /**
        This program displays all URLs in a web page by
        matching a regular expression that describes the
        <a href=...> HTML tag. Start the program as
        java HrefMatch URL
     */
     public class HrefMatch
     {
        public static void main(String[] args)
        {
           try
           {
              // get URL string from command line or use default
              String urlString;
              if (args.length > 0) urlString = args[0];
              else urlString = "http://java.sun.com";          // open reader for URL
              InputStreamReader in = new InputStreamReader(new URL(urlString).openStream());          // read contents into string buffer
              StringBuilder input = new StringBuilder();
              int ch;
              while ((ch = in.read()) != -1) input.append((char) ch);          // search for all occurrences of pattern
              String patternString = "<a\\s+href\\s*=\\s*(\"[^\"]*\"|[^\\s>])\\s*>";
              Pattern pattern = Pattern.compile(patternString, Pattern.CASE_INSENSITIVE);
              Matcher matcher = pattern.matcher(input);          while (matcher.find())
              {
                 int start = matcher.start();
                 int end = matcher.end();
                 String match = input.substring(start, end);
                 System.out.println(match);
              }
           }
           catch (IOException e)
           {
              e.printStackTrace();
           }
           catch (PatternSyntaxException e)
           {
              e.printStackTrace();
           }
        }
     }
      

  2.   

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=GB2312" />
    <title>正则表达式</title>
    <script language="JavaScript" type="text/javascript">
    function regexp_str(){var regexpStr=new RegExp(document.getElementsByName("regexp").item(0).value); //建立正则对象
    var getStr=document.getElementsByName("str").item(0).value; //取得输入的文本值var target = getStr.match(regexpStr) ;document.getElementsByName("strTarget").item(0).value = target ;var info = ""
    if(regexpStr.test(getStr)) //正则对象的test方法,匹配返回true,否则返回false)
    info = "输入的字符串:"+getStr+" 包含模式:"+regexpStr.source ; //正则对象的source属性,返回正则对象设置的匹配值
    else
    info = "输入的字符串:"+getStr+" 不包含模式:"+regexpStr.source;document.getElementsByName("strInfo").item(0).value = info ;var strReplace = document.getElementsByName("strReplace").item(0).value ;
    if(regexpStr.test(getStr)) {
    var regStr=new RegExp(document.getElementsByName("regexp").item(0).value,"g");
    document.getElementsByName("afterReplaced").item(0).value = getStr.replace(regStr,strReplace) ;
    }}
    </script></head>
    <body>
    <h3 align=center>------正则表达式测试------</h3>
    <hr>
    <FORM METHOD=POST ACTION="">
    &nbsp&nbsp请输入模式:&nbsp<input type="text" name="regexp" size=120 ><br>
    请输入字符串:&nbsp<input type="text" name="str" size=120><br>
    匹配的字串是:&nbsp<input type="text" name="strTarget" size=120><br>
    其&nbsp他&nbsp信&nbsp息&nbsp:&nbsp<input type="text" name="strInfo" size=120 ><br>
    要替换的子串:&nbsp<input type="text" name="strReplace" size=120><br>
    替换后的子串:&nbsp<input type="text" name="afterReplaced" size=120><br>
    <input type="button" value="查询" onclick="regexp_str();">
    <input type="reset" value="重置" onclick="regexp_str();">
    </FORM>
    </body>
    </html>将这个保存为html文件
    然后就可以用来匹配了