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

Java 正则表达式 测试过

2014-06-17 12:57 204 查看
import java.util.regex.Matcher;

import java.util.regex.Pattern;

public class Reg {

public static void main(String args[]){

String[] dataArr = { "moson", "mon", "smson", "mon" };

String patternStr=".*m(o+s+o+)n"; //* 表示零次或多次 +表示一次或多次

boolean result = Pattern.matches(patternStr, dataArr[0]);

if (result) {

System.out.println("字符串"+dataArr[0]+"匹配模式"+patternStr+"成功");

}else{

System.out.println("字符串"+dataArr[0]+"匹配模式"+patternStr+"失败");

}

patternStr=".?m(o+)n"; //? 表示一次或零次

result = Pattern.matches(patternStr, dataArr[1]);

if (result) {

System.out.println("字符串"+dataArr[1]+"匹配模式"+patternStr+"成功");

}else{

System.out.println("字符串"+dataArr[1]+"匹配模式"+patternStr+"失败");

}

patternStr=".+m(o+)n";

result = Pattern.matches(patternStr, dataArr[2]);

if (result) {

System.out.println("字符串"+dataArr[2]+"匹配模式"+patternStr+"成功");

}else{

System.out.println("字符串"+dataArr[2]+"匹配模式"+patternStr+"失败");

}

patternStr="m(o+)n";

result = Pattern.matches(patternStr, dataArr[3]);

if (result) {

System.out.println("字符串"+dataArr[3]+"匹配模式"+patternStr+"成功");

}else{

System.out.println("字符串"+dataArr[3]+"匹配模式"+patternStr+"失败");

}

System.out.println("---------test[]------------------");

String[] dataArr1 = {"ban","ben","bin","bon","bun","byn","baen"};

patternStr="b[aeoy]+n"; //表示匹配[]中任意一个字符,注意,只能是一个,此处可通过添加+来增加

for (String str : dataArr1) {

boolean result1 = Pattern.matches(patternStr, str);

if (result1) {

System.out.println("字符串"+str+"匹配模式"+patternStr+"成功");

}

else{

System.out.println("字符串"+str+"匹配模式"+patternStr+"失败");

}

}

System.out.println("---------test()------------------");

String[] dataArr2 = {"ban","ben","bin","bon","bun","byn","baen"};

patternStr="b(ae|o)n"; //表示匹配()中多个字符,可通过|来添加匹配

for (String str : dataArr2) {

boolean result2 = Pattern.matches(patternStr, str);

if (result2) {

System.out.println("字符串"+str+"匹配模式"+patternStr+"成功");

}

else{

System.out.println("字符串"+str+"匹配模式"+patternStr+"失败");

}

}

System.out.println("---------test - ------------------");

String[] dataArr3 = { "1", "10", "101", "1010" ,"100+"};

patternStr="[0-9]+";

for (String str : dataArr3) {

boolean result3 = Pattern.matches(patternStr, str);

if (result3) {

System.out.println("字符串"+str+"匹配模式"+patternStr+"成功");

}

else{

System.out.println("字符串"+str+"匹配模式"+patternStr+"失败");

}

}

System.out.println("---------test '\'d ------------------");

String[] dataArr4 = { "1", "10", "101", "1010" ,"100+"};

for (String str : dataArr4) {

patternStr="\\d+"; //\\d代表数字

boolean result4 = Pattern.matches(patternStr, str);

if (result4) {

System.out.println("字符串"+str+"匹配模式"+patternStr+"成功");

}

else{

System.out.println("字符串"+str+"匹配模式"+patternStr+"失败");

}

}

System.out.println("---------test String split ------------------");

String str1="薪水,职位 姓名;年龄 性别";

String[] dataArr5 =str1.split("[,\\s;]"); //String中可以使用split,\\s表示空格

for (String strTmp : dataArr5) {

System.out.println(strTmp);

}

System.out.println("---------test '\'w ------------------");

String[] dataArr6 = { "a100", "b20", "c30", "df10000" ,"gh0t"};

for (String str : dataArr6) {

patternStr="\\w+\\d+";

boolean result6 = Pattern.matches(patternStr, str);

if (result6) {

System.out.println("字符串"+str+"匹配模式"+patternStr+"成功");

}

else{

System.out.println("字符串"+str+"匹配模式"+patternStr+"失败");

}

}

System.out.println("--------- Pattern split 分割 ------------------");

String str="2007年12月11日";

Pattern p = Pattern.compile("[年月日]");

String[] dataArr7 =p.split(str); //使用正则分割

for (String strTmp : dataArr7) {

System.out.println(strTmp);

}

System.out.println("--------- String replaceAll ------------------");

str="10元 1000人民币 10000元 100000RMB";

str=str.replaceAll("(元|人民币|RMB)", "¥"); //String的replaceAll采用正则替换

System.out.println(str);

System.out.println("--------- String find 依次往下查找匹配的对象 ------------------");

p = Pattern.compile("m(o+)n",Pattern.CASE_INSENSITIVE);

// 用Pattern类的matcher()方法生成一个Matcher对象

Matcher m = p.matcher("moon mooon Mon mooooon Mooon");

StringBuffer sb = new StringBuffer();

// 使用find()方法查找第一个匹配的对象

boolean result8 = m.find();

// 使用循环找出模式匹配的内容替换之,再将内容加到sb里

while (result8) {

m.appendReplacement(sb, "moon");

result8 = m.find();

}

// 最后调用appendTail()方法将最后一次匹配后的剩余字符串加到sb里;

m.appendTail(sb);

System.out.println("替换后内容是" + sb.toString());

System.out.println("--------- String goup ------------------");

String s = "person[0].name";

Pattern pattern = Pattern.compile("[a-z|0-9]+\\[\\d+\\].[a-z|0-9]+");

Matcher matcher = pattern.matcher(s);

boolean b = Pattern.matches("[a-z|0-9]+\\[\\d+\\].[a-z|0-9]+",s);

System.out.println(b);

pattern = Pattern.compile("\\[\\d+\\]");

matcher = pattern.matcher(s);

if(matcher.find()){

System.out.println(matcher.group(0));

}

System.out.println("--------- String goup ------------------");

String regex="([a-zA-Z]+[0-9]+)";

pattern=Pattern.compile(regex);

//String input="age45 salary500000 50000 title";

String input="age45";

matcher=pattern.matcher(input);

sb=new StringBuffer();

while(matcher.find()){

System.out.println(matcher.group(1));

String replacement=matcher.group(1).toUpperCase();

matcher.appendReplacement(sb, replacement);

}

matcher.appendTail(sb);

System.out.println("替换完的字串为"+sb.toString());

}

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