主要用到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.