码迷,mamicode.com
首页 > 其他好文 > 详细

正则表达式的简单应用

时间:2015-09-20 13:18:13      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:

  很多的工具,如eclipse,ue等在查找,替换时也都是支持正则表达式的。下面是一些例子:

  eclipse中去掉/* */:       /\*(.|[\r\n])*?\*/全部替换为空即可
  eclipse中去掉//:           //.*$全部替换为空即可
  eclipse中去掉import :    import.*$全部替换为空即可
  eclipse中去掉空行:       ^\s*\n全部替换为空即可
  ue中去掉空行               %[ ^t]++^p

 

  将最内层括号中的内容替换为"abc"的Java代码例子:

String s = "onu 1/1/1(def (ghj(\"test string\")jkl))";
        System.out.println(s.replaceAll("(.*\\()([^\\)]*)(.*)", "$1\"abc\")$3"));

        //  (.*\\()  匹配至最内层的左括号--[onu 1/1/1(def (ghj(],Java默认的匹配是贪婪匹配
        //  ([^\\)]*) 匹配最内层括号中的内容 --["test string"]
        //   (.*)  匹配最内层右括号之后的内容--[)jkl))]
        Pattern p = Pattern.compile("(.*\\()([^\\)]*)(.*)");
        Matcher m = p.matcher(s);

        while(m.find()){
            for(int i=0;i<= m.groupCount();i++){
                System.out.print("[" + m.group(i) + "]");
            }
            System.out.println("");
        }

  

  从日志文件中提取IP地址及时间的Java代码例子:

String testStr = "172.26.155.241 - - [26/Feb/2011:10:53:06 -0500] \"GET IsAlive.html HTTP/1.0\" 200 15";
        //   (\\[[^\\]]*\\])") 用户获取[]所包含的时间信息,也可以简单地写成(\\[.*\\])")
        p = Pattern.compile("(\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}).*(\\[[^\\]]*\\])");
        m = p.matcher(testStr);

        while(m.find()){
            for(int i=0;i<= m.groupCount();i++){
                System.out.print("[" + m.group(i) + "]");
            }
            System.out.println("");
        }
        
        String str = "nfa not";
        p = Pattern.compile("(nfa|nfa not)");
        m = p.matcher(str);

        while(m.find()){
            for(int i=0;i<= m.groupCount();i++){
                System.out.print("[" + m.group(i) + "]");
            }
            System.out.println("");
        }

 

正则表达式的简单应用

标签:

原文地址:http://www.cnblogs.com/lnlvinso/p/4823198.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!