正则表达式-以Java为例
经常会需要编写代码来验证用户输人,比如验证输人是否是一个数字,是否是一个全部 小写的字符串,或者社会安全号。如何编写这种类型的代码呢?一个简单而有效的做法是使 用正则表达式来完成这个任务。
正则表达式(regular expression,简写为 regex) 是一个字符串,用来描述匹配一个字符串集合的模式。对于字符串处理来说,正则表达式是一个强大的工具。可以使用正则表达式 来匹配 、替换和分割字符串。
一、字符串匹配
在字符串的匹配操作中,正则表达式的应用十分广泛。
以java String类中的matches方法为例:
"java".matches("java");//表达式返回 true
二、正则表达式的语法:
1 import java.util.Arrays; 2 3 public class LuanGao { 4 5 public static void main(String[] args) 6 { 7 boolean expression; 8 //1 .* 9 expression="java".matches("java.*"); 10 System.out.println("1.1:"+expression);// 11 12 expression="javaaadadada".matches("jav.*"); 13 System.out.println("1.2:"+expression); 14 15 expression="javaaadadada".matches("jaa.*"); 16 System.out.println("1.2:"+expression); 17 // 1.1:true 18 // 1.2:true 19 // 1.2:false 20 21 //2 . 22 expression="java".matches("j..a"); 23 System.out.println("2.1:"+expression); 24 25 expression="java".matches("j..b"); 26 System.out.println("2.1:"+expression); 27 // 2.1:true 28 // 2.1:false 29 30 //3 (ab|cd) 31 expression="java".matches("j(a|b)va"); 32 System.out.println("3.1:"+expression); 33 34 expression="java".matches("j(ab|b)va"); 35 System.out.println("3.2:"+expression); 36 // 3.1:true 37 // 3.2:false 38 39 //4 40 expression="java".matches("j[abc]va"); 41 System.out.println("4.1:"+expression); 42 43 expression="java".matches("j[^abc]va"); 44 System.out.println("4.2:"+expression); 45 46 expression="java".matches("j[a-z]va"); 47 System.out.println("4.3:"+expression); 48 49 expression="java".matches("j[^a-z]va"); 50 System.out.println("4.4:"+expression); 51 52 expression="java".matches("j[a-e[m-p]]va"); 53 System.out.println("4.5:"+expression); 54 55 expression="java".matches("j[a-e&&[m-p]]va"); 56 System.out.println("4.5:"+expression); 57 58 // 4.1:true 59 // 4.2:false 60 // 4.3:true 61 // 4.4:false 62 // 4.5:true 63 // 4.5:false 64 65 66 67 //5 68 expression="java2".matches("java[\\d]"); 69 System.out.println("5.1:"+expression); 70 71 expression="java2".matches("[\\D][\\D][\\D][\\D][\\d]"); 72 System.out.println("5.2:"+expression); 73 74 expression="java2".matches("j[\\w]va[\\d]"); 75 System.out.println("5.3:"+expression); 76 77 expression="java2".matches("j[\\W]va[\\d]"); 78 System.out.println("5.4:"+expression); 79 80 expression="java2".matches("java[\\s]"); 81 System.out.println("5.5:"+expression); 82 83 expression="java2".matches("java[\\S]"); 84 System.out.println("5.6:"+expression); 85 // 5.1:true 86 // 5.2:true 87 // 5.3:true 88 // 5.4:false 89 // 5.5:false 90 // 5.6:true 91 92 //6 93 expression="aaaab".matches("a*b*"); 94 System.out.println("6.1:"+expression); 95 96 expression="abbbbb".matches("a+b+c+"); 97 System.out.println("6.2:"+expression); 98 99 expression="abbbbb".matches("a+b+c*"); 100 System.out.println("6.3:"+expression); 101 102 expression="ac".matches("a?b?c?"); 103 System.out.println("6.4:"+expression); 104 105 expression="aaaaaa".matches("a{6}"); 106 System.out.println("6.5:"+expression); 107 108 expression="aaaaaaaaa".matches("a{1,100}");//开区间 109 System.out.println("6.6:"+expression); 110 111 // 6.1:true 112 // 6.2:false 113 // 6.3:true 114 // 6.4:true 115 // 6.5:true 116 // 6.6:true 117 } 118 119 }