正则表达式描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。所以说,正则表达式在处理字符串中时非常有用,是掌握字符串使用的重要知识。
二、Java中正则表达式的常用操作
正则表达式是一种强大而灵活的文本处理工具。Java中常见的正则表达式操作有匹配、切割、替换和获取。
1、匹配
使用String matches()方法,不符合规则返回值为False。
package zhengze;
public class Dddm {
private static final String False = null;
public static void main(String[] args){
String Str = new String("我是一只程序猿");
System.out.println("返回值 :"+Str.matches("(.*)一只(.*)"));
boolean flag = Str.matches("我是(.*)");
if(flag){
System.out.println("我被重新定义为:HelloWord!");
}else{
System.out.println("我没有被重新定义!");
}
}
}
返回值 :true 我被重新定义为:HelloWord!
以上为实例及其执行结果。
2、切割
使用String split()方法。
package zhengze;
public class Demo5_Split {
public static void main(String[] args) {
String s = "程序员.程序猿.chengxuyuan";
String[] arr = s.split("\.");
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
}
程序员 程序猿 chengxuyuan
以上为实例及其执行结果。
3、替换
使用String replaceAll(regex,str)方法。
package zhengze;
public class Demo2 {
public static void main(String[] args)
{
String str = "abc1234567890de1234567fghi232323232l";//将字符串中的数字替换成%。
str = str.replaceAll("\d{5,}","%");
System.out.println(str);
}
}
abc%de%fghi%l
以上为实例及其执行结果。
4、获取
将字符串中的符合规则的子串取出。
public class Test {
public static void main(String[] args) {
String str = "select * from order where createdUser = ${currentUser} and depart = ${currentOrg} and status = 'VALID'";
String reg = "\$\{[a-zA-Z0-9]+\}";
Pattern patten = Pattern.compile(reg);
Matcher matcher = patten.matcher(str);
List matchStrs = new ArrayList<>();
while (matcher.find()) {
matchStrs.add(matcher.group());
}
for (int i = 0; i < matchStrs.size(); i++) {
System.out.println(matchStrs.get(i));
}
}
}
${currentUser}
${currentOrg}
以上为实例及其执行结果
三、常见字符特殊含义的字符
字符类
逻辑操作符
边界匹配符
四、实例
校验qq号,要求5-15位数字,开头不能为0.
package zhengze;
import java.util.Scanner;
public class Dddm3 {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("输入QQ号码:");
String qq = sc.nextLine();
System.out.println("checkQQ:"+checkQQ(qq));
}
private static boolean checkQQ(String qq) {
return qq.matches("[1-9]{1}\d{4,14}");
}
}
请输入您的QQ号码: 2569546797 checkQQ:true五、 总结
正则表达式在字符串中的使用非常多,以上只是一些常见的使用。正则表达式相对于普通的字符串,更加智能化,所以要掌握好正则表达式的使用。加油!!!



