• 【Java SE】正则表达式


    import java.io.FileNotFoundException;
    import java.util.Arrays;
    import java.util.List;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    import java.util.stream.Collectors;
    
    public class Exam {
        public static void main(String[] args) throws FileNotFoundException {
            
            new Exam().f();
        }
        
        void f() throws FileNotFoundException{
            String in = "aabcabcabcdef";
    //        String reg = "(abc)";
    //        String reg = "(abcabc)";
            String reg = "(abc){2,}";//{n,}是种特殊情况,先匹配一个(abc),因此即使只匹配一个(abc),Matcher也不会Reset 》 具体则涉及到组(Group)的概念,没有任何组匹配到输入时,将Reset
            
            Pattern p = Pattern.compile(reg);
            List l = Arrays.asList(p.split(in)).stream().map(x -> f(x)).collect(Collectors.toList());
            for (Object object : l) {
                System.out.println(((Person)object).name);
            }
            
            Matcher m = p.matcher(in);
            
    //        int i = 0;
    //        while(m.find(i)){
    //            System.out.print(m.group()+" ");
    //            i++;
    //        }
    //        System.out.println();
            
            System.out.println(m.find(5));//有几个临界点需要注意  5 8
    //        System.out.println(m.find(0)+" "+m.group());
            while(m.find()){
                System.out.println(m.group());
                //疑问:
                //这里在Matcher.find(5)==false之后仍然不输出,
                //但是在Matcher,find(8)==false之后突然开始输出。
            }
            System.out.println(m.find(0)+" "+m.group());//有几个临界点需要注意
            
            
            boolean b = Pattern.matches(reg, in);
            System.out.println(b);
        }
        
        Object f(String x){
            System.out.println(x+" in List");
            return new Person(x);
        }
    }
    
    class Person{
        String name;
        Person(String name){
            this.name = "person:"+name ;
        }
    }
  • 相关阅读:
    只使用代码创建WPF程序
    C#第一课
    VMware虚拟机的网络设置
    mac系统下配置Eclipse Java/C++ 开发环境
    【读书笔记】【物联网】《物物连起大世界物联网的应用与前景》
    移动硬盘无法格式化
    Win7下chm文件打不开的解决办法[转]
    MapInfo数据到ARCGIS数据Shapefile的转换
    mapx不具开发功能
    [读书笔记]熟悉SQLPLUS Oracle数据库环境
  • 原文地址:https://www.cnblogs.com/Tsing-Evan/p/8432995.html
Copyright © 2020-2023  润新知