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  ); 
        	} 
        }
    

      执行结果

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

      

     

  • 相关阅读:
    HDU1542矩形面积并
    HDU5869树状数组+gcd预处理
    HDU5845 Best Division
    整体二分
    Lattice 的 Framebuffer IP核使用调试笔记之datasheet笔记
    DDR3详解(以Micron MT41J128M8 1Gb DDR3 SDRAM为例)
    ISD1700系列多段语音录放系列
    Lattice Diamond 学习之编译、检查和设置约束
    欧拉函数的几个性质及证明
    CF776B Sherlock and his girlfriend
  • 原文地址:https://www.cnblogs.com/vigarbuaa/p/2614046.html
Copyright © 2011-2022 走看看