zoukankan      html  css  js  c++  java
  • 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  ); 
        	} 
        }
    

      执行结果

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

      

     

  • 相关阅读:
    标识符和关键字
    大任务拆成小任务,再到可并行的小任务
    莫等闲
    这样修改有哪些优缺点 wcf service via attribute setting vs config
    头脑发达,四肢简单
    32位还是64位
    session未释放
    split task
    sqlserver deadlock
    IronPython
  • 原文地址:https://www.cnblogs.com/vigarbuaa/p/2614046.html
Copyright © 2011-2022 走看看