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

  执行结果

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

  

 

原文地址:https://www.cnblogs.com/vigarbuaa/p/2614046.html