您的位置:首页 > 编程语言 > Java开发

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

2012-07-29 15:33 302 查看
正则表达式,程序中从复杂文本中提取信息的必备手段。

做了几个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  );
}
}


  执行结果

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


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: