正则表达式-以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 }

 

posted @ 2020-10-20 16:12  lihaji  阅读(150)  评论(0编辑  收藏  举报