主要用到java.util.regex.Matcher;java.util.regex.Pattern;两个类。

 

package cn.jjm.test;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class rex {
	
	//字符匹配
	 public void findSubString(String str,String matStr){
         char[] cArr = str.toCharArray();
         char[] cArrMat = new char[str.length()];
         
         Pattern pattern=Pattern.compile(matStr);
         Matcher matcher=pattern.matcher(str);
         while(matcher.find()){
              for(int i=matcher.start();i<matcher.end();i++){
                       cArrMat[i]='^';
              }
         }
         System.out.println("执行结果:");
         System.out.println(cArr);
         System.out.println(cArrMat); 
	 }
	 
	 //验证小写字符串
	 public void matchString(String str,String matStr){ 
         Pattern pattern=Pattern.compile(matStr);
         Matcher matcher=pattern.matcher(str);
         System.out.println("执行结果:");
         if(matcher.matches()){
                  System.out.println("验证成功!");
         }else{
                  System.out.println("验证失败!");
         }
	 }
	 
	 //获取字符串中的数字元素
	 public void easy(String str,String matStr){
         Pattern pattern=Pattern.compile(matStr);
         Matcher matcher=pattern.matcher(str);
         System.out.println("执行结果:");
         while(matcher.find()){
                  System.out.println(matcher.group());
         }
	 }

	 //分割字符串
	 public void splitString(String str){
         String matStr="//s+|//.//s*|//,//s*";
         String[] tokens=str.split(matStr);
         System.out.println("执行结果:");
         for(int i=0;i<tokens.length;i++){
                  System.out.println(tokens[i]);
         }
	 }

	 public static void main(String args[]){
//		 new rex().findSubString("hsshdhasoasdhasd", "h.s");
//		 new rex().matchString("ashdk", "[a-z]+");
//		 new rex().easy("ad45sdas2.5sd45.a.2sdd", "//d+(//.//d*)?");
		 new rex().splitString("asd sad,asd.asd adasd.");

	 } 
}

 

// 常用的正则表达式字符集:
// 定义字符集
// [aeiou]         任意方括号之间的字符都可以进行匹配
// [^aeiou]        表示除了方括号之间^右面的任意字符
// [a-e]     封闭范围,表示从a到e之间的所有字符
// [a-eA-F1-9]   a到e,A到F,1到9的字符
// &&       逻辑与  如[a-e&&[^aeiou]]a-e除了aeiou
// |   逻辑或     [H|h][aeiou]d 以H或h开头,中间为aeiou,结尾为d
// 
// 预定义字符
// .   代表任意字符
// /d 代表数字。即[0-9]
// /D         非数字的任意字符[^0-9]
// /s 任意空白字符
// /S 任意非空白字符[^/s]
// /w         大小写字母,数字,下划线[a-zA-Z_0-9]
// /W        [^/w]
// 
// 匹配边界,比如查找非内嵌的单词
// ^ 指定起始行     在每一行的开始查找单词java      ^java
// $ 指定行的结束         在每一行的末尾查找单词java      java$
// /b 单词的边界     查找h开始,d结尾的单词              //bh.d//b
// /B          非单词的边界
// /A          指定被搜索字符串的起始     为找到位于搜索字符串起始位置的单词The //AThe//b
// /z 指定被搜索字符串的末尾     为了在字符串末尾找到后面是句号的单词good         //bgood//z
// /Z 除了最后终止符以外的输入结尾
// 
// 量词的使用         如何重复使用子串
// + 表示一个或多个     //d+ 任意整数序列
// ?只可能发生一次或者根本就不发生 //d+(//.//d+)? 小数2.25
// * 出现零次或者更多次     //d+(//.//d*)? 2.