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

  执行结果

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

  

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值