java中最基础的正则式应用:
第一种:
String s = "123a4c6343d45d"; // 内容
String c="具体规则";// 建立规则
boolean n=s.matches(c);//对比
第二种:
boolean bool = Pattern.matches("\\w+","hello abc");//第一参是规则,第二参为要匹配的字符串
第三种:
Pattern p=Pattern.compile("\\w+");//规则对象
Matcher m=p.matcher("aosijdoaijsc64113kiuhkiuh68465");//将需要匹配的字符串与正则存入Matcher对象中
boolean yesorno=m.matches();//尝试将整个字符串与规则做匹配.
上图例子(下同):
这个应该不需要例子
这个应该也不需要例子
不需要
例子 :
String a="\d{2}";//从左到右匹配两个字符串 非贪楚模式为
"\d{2,?}"即最匹配出现最少次数。
例子:
String a="^[a-z]\d{3}~$";//第一个字符匹配小写字母,中间三个字符匹配0-9的数字,最后一个字符串匹配~。
例子:捕获组可以理解为将符合规则的字符串提取到内存中,并且给它们编号,我直接用代码来写例子。
Pattern p = Pattern.compile("(\\d+)([¥$]$)");// 建立规则
String str = "8899¥";// 需要匹配的内容
Matcher m = p.matcher(str);// 匹配并存入对象中.
if (m.matches()) {// 判断对象m所包含的字符串是否有符合规则的
System.out.println("货币金额" + m.group(1));//打印捕获组内容,参数为捕获组编号
System.out.println("货币种类" + m.group(2));
}
第二个例子:
Pattern p = Pattern.compile("([a-z]+)([0-9]+)");// 规则对象
Matcher m = p.matcher("aa232**ssd445*sds323");// 将需要匹配的字符串与正则存入Matcher对象中
boolean yesorno2=m.find();//该方法扫描字符串,查找m中的字符串是否存在符合规则的下一个(以第0个字符开始计算)子字符串,有则返回true
boolean yesorno=m.matches();//判断m中的字符串是否存在符合规则的内容.!**这句代码一般不能与上句代码同时使用,会影响结果**!
while (m.find()) {
System.out.println(m.group());//group()与group(0)同样效果(打印匹配的所有字符串)且都需要配合find使用.
System.out.println(m.group(1));
System.out.println(m.group(2));
System.out.println();
}
替换字符例子:
Pattern p = Pattern.compile("[0-9]");// 规则对象
Matcher m = p.matcher("aa232**ssd445*sds323");// 将需要匹配的字符对象与正则存入Matcher对象中
String newStr=m.replaceAll("#");//将符合条件的字符替换为#
System.out.println(newStr);//输出结果为aa###**ssd###*sds###
字符切割,也叫字符剔除,例子:
//字符串切割,也叫字符剔除
String str="s5313a1322x321c3f";
String [] arrs=str.split("\\d+");//将符合规则的字符都剔除掉
System.out.println(Arrays.toString(arrs));//输出为s,a,x,c,f
下面图片是上面图片的例子:
意思就是先确定ing的位置,再匹配它前面的所有小写字母
常用