• [ Java学习 ] 正则表达式与模式匹配


    文章内容:

      因为最近粗略了解学习了一下正则表达式,贴出我查阅过的,觉得比较好的正则表达式的文章链接,并且给出几段Java代码,可以用来测试自己学习掌握正则表达式的效果。

    先贴出正则表达式的相关博文(都是超链接,可直接点击

    正则表达式全部符号解释

    [原]正则表达式模式匹配入门

    正则表达式30分钟入门教程

    正则表达式学习参考

    以及相关的Java代码:

    import java.util.regex.*;
    public class test{
        public static void main(String args[ ]){
            Pattern p;                                   
            Matcher m;                                   
            String s1="loveyouhatemelove123jkjhate999love888";  
            p=Pattern.compile("love\w{3}|hate\w{2}");     
            m=p.matcher(s1);                              
            while(m.find()){
               String str=m.group();
               System.out.print("从"+m.start()+"到"+m.end()+"匹配模式子序列:");
               System.out.println(str);
            } 
        }
    }
    

    import java.util.regex.*; 
    public class test {
        public static void main(String args[ ]){
            Pattern p;  //模式对象
            Matcher m;//匹配对象
            String input=
            "Have 7 monkeys on the tree, walk 2 monkeys, still leave how many monkeys?";
                      p=Pattern.compile("monkeys"); //初始化模式对象
            m=p.matcher(input);         //初始化匹配对象
            while(m.find()){
               String str=m.group();
               System.out.println("从"+m.start()+"至"+m.end()+"是"+str);
            } 
        }
    }
    
    

    import java.util.regex.*;
    public class test{
        public static void main(String args[ ]){
            Pattern p;                             	//模式对象
            Matcher m;                            	//匹配对象
            String s1="0A1A2A3A4A5A6A7A8A9";  	//待匹配的字符序列
            p=Pattern.compile("\dA\d");              	//用模式"\dA\d"初始化模式对象
            m=p.matcher(s1);                       	//用待匹配字符序列初始化匹配对象
            while(m.find()){
               String str=m.group();
               System.out.print("从"+m.start()+"到"+m.end()+"匹配模式子序列:");
               System.out.println(str);
            } 
            String temp=m.replaceAll("***");
            System.out.println(temp);
            System.out.println(s1);
            m=p.matcher("9A00A3");                    	//重新初始化匹配对象
            if(m.matches()){
               String str=m.group();
               System.out.println(str);
            } 
            else{
               System.out.println("不完全匹配");
            }
            if(m.lookingAt()){
               String str=m.group();
               System.out.println(str);
            }   
        }
    }

    import java.util.regex.*;
    public class test{
        public static void main(String args[ ]){
            Pattern p;                              	
            Matcher m;                            	
            String s="2008年08月08日20点,北京奥运开幕"; 
            p=Pattern.compile("\d+");               //查找s中的数字信息所用模式
            m=p.matcher(s);                       //用待匹配字符序列初始化匹配对象
            while(m.find()){
               String str=m.group();
               System.out.print("从"+m.start()+"到"+m.end()+"匹配模式子序列:");
               System.out.println(str);
            } 
            p=Pattern.compile("\D+");            //查找s中的非数字信息所用模式
            m=p.matcher(s);        
            while(m.find()){
               String str=m.group();
               System.out.print("从"+m.start()+"到"+m.end()+"匹配模式子序列:");
               System.out.println(str);
            } 
        }
    }



    import java.util.regex.*;
    public class test {
       public static void main(String args[ ]) { 
          Pattern p;          //模式对象
          Matcher m;         //匹配对象
          String regex = "(http://|www)56?\w+56{1}\w+56{1}\p{Alpha}+";
          p = Pattern.compile(regex);  //初始化模式对象
          String s = "新浪:www.sina.cn,央视:http://www.cctv.com";   
          m = p.matcher(s);  //得到检索s的匹配对象m
          while(m.find()) {
             String str = m.group();
             System.out.println(str);
          } 
          System.out.println("剔除网站地址后:");
          String result = m.replaceAll("");
          System.out.println(result);
       }
    }
    





    -------------------------------其他相关文章------------------------------

     [Java学习 ] 类的其他文章汇总(都是超链接,可直接点击):

    [ Java学习 ] 实验 银行业务模拟

    [ Java学习 ] 破除思维定势之 C++ 和 Java 的差异 001

    [ Java学习 ] 破除思维定势之 C++ 和 Java 的差异 002

    [ Java学习 ] 破除思维定势之 C++ 和 Java 的差异 003

    [ Java学习 ] 包语句 package等语句的汇总整理

    [ Java学习 ] Java变量以及内存分配(非常重要)

    [ Java学习 ] 其他知识总结(重要)

    [ Java学习 ] “goto语句“ 和 “continue + 标号” 的不同待遇

    [ Java学习 ] toString方法 和 equals方法

    [ Java学习 ] 查阅资料整理 001

    [ Java学习 ] 查阅资料整理 002

    [ Java学习 ] 一道Java好题的详细题解 001

    -------------------------------一点碎碎念------------------------------

      其实之前有过至少两次机会学习正则表达式的,但是都被我拖延过去了。

      一次是今年暑假,当时刚上完大一所有课,在知乎上搜索,有什么适合学完C语言的人练手的小项目(大概是这个问题,具体记不清楚了),当时好像轮子哥就提到了正则表达式,然而并没有什么用,知道了我也还是没去学。

      第二次是,某次和师兄请教问题时,他说到,正则表达式很有用,很值得一学,当时一听,这名词我听过啊!~赶紧回去就准备学一下….

      然而懒癌太严重了,还是没有学。直到最近,老师的教案里出现了正则表达式了,好像这次是再也避不过了,就只能好好地理解了一下语法,算是对正则表达式有了粗浅的了解。

      唉,现在突然觉得,有什么事情一定不能拖。不懂的知识点还是要在当时立刻解决,毕竟,现在不解决,早晚有一天也还是要还债的。拖着拖着,总有一天还是得花时间解决的/

  • 相关阅读:
    转:【实用教程】阿里云服务器的配置和使用
    C# 定制错误页面
    C# Session进程外存储
    NOIP200101数的计算
    周末舞会
    queue 队列
    信息学作文
    求三个数的平均数
    Hello world
    Django-Form组件-forms.Form
  • 原文地址:https://www.cnblogs.com/mofushaohua/p/7789359.html
Copyright © 2020-2023  润新知