正则表达式描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。所以说,正则表达式在处理字符串中时非常有用,是掌握字符串使用的重要知识。
二、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); ListmatchStrs = 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五、 总结
正则表达式在字符串中的使用非常多,以上只是一些常见的使用。正则表达式相对于普通的字符串,更加智能化,所以要掌握好正则表达式的使用。加油!!!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)