• java正则表达式的几个小例子


    正则表达式,程序中从复杂文本中提取信息的必备手段。

    做了几个Java中正则表达式的小例子,以备参考

    一. 最简单正则表达式

    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    
      /*最简单模式匹配*/
        public void testReg2()
        {
        	final  String EXAMPLE_TEST = "Wu Dong Qian Kun ";    	
        	Pattern pattern = Pattern.compile("\\w+");
    		Matcher matcher = pattern.matcher(EXAMPLE_TEST);		
    		while (matcher.find()) {
    			System.out.print("Start index: " + matcher.start());
    			System.out.print(" End index: " + matcher.end() + " ");
    			System.out.println(matcher.group());
    		}
        }
    

     执行结果

    Start index: 0 End index: 2 Wu
    Start index: 3 End index: 7 Dong
    Start index: 8 End index: 12 Qian
    Start index: 13 End index: 16 Kun
    

    二:解析特定模式(可以用于解析properties及xml文件)

    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    public void testReg3()
        {
        	final  String EXAMPLE_TEST = "a=67  b=90 aac=89x";    	
        	Pattern pattern = Pattern.compile("(\\w+)=(\\w+)");
    		Matcher matcher = pattern.matcher(EXAMPLE_TEST);		
    		while (matcher.find()) {
    			System.out.print("Start index: " + matcher.start());
    			System.out.print(" End index: " + matcher.end() + " ");
    			System.out.println(matcher.group());
    			System.out.println(matcher.group(0));
    			System.out.println(matcher.group(1));
    			System.out.println(matcher.group(2));			
    		}
        }
    

       执行结果

    Start index: 6 End index: 10 b=90
    b=90
    b
    90
    Start index: 11 End index: 18 aac=89x
    aac=89x
    aac
    89x
    

    三. 匹配中文,中文匹配的问题比较令人头疼,这里仅给出utf8字串的处理方法。

      Unicode 汉字内码的汉字区为4E00-9FA5, 共有20902个汉字,程序中可以对\u4E00-\u9FA5模式进行匹配,取得相应中文信息

    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    
    
      /*验证中文正则的匹配*/
        public void testRegChinese()
        {
        	String input = "中文语言chinese最近几天wudong武动乾坤de更新状况"; 
        	String temp = null; 
        	Pattern p = Pattern.compile("[\u4E00-\u9FA5]+"); 
        	Matcher m = p.matcher(input); 
        	while (m.find()) 
        	{ 
        		temp = m.group(0);     	
        		System.out.println(temp  ); 
        	} 
        }
    

      执行结果

    中文语言
    最近几天
    武动乾坤
    更新状况
    

      

     

  • 相关阅读:
    HDU 1059 Dividing(多重背包)
    新华网,要厚道
    js与DOM初步:访问html元素
    Hacker News网站的文章排名算法工作原理
    做技术,是个精益求精的事情
    百度贴吧客户端(Android)网络通信行为分析
    Storm同时接收多个源(spout和bolt)
    各种流处理系统的比较
    Kafka学习
    关联规则推荐及Apriori算法
  • 原文地址:https://www.cnblogs.com/vigarbuaa/p/2614046.html
Copyright © 2020-2023  润新知