zoukankan      html  css  js  c++  java
  • 正则表达式-以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 }
  • 相关阅读:
    spring boot图片上传至远程服务器并返回新的图片路径
    java错误笔记
    mybatis逆向工程
    将vue-cli项目配置在nginx上
    spring boot使用jpa查询mysql数据库的视图时不报错,但查询结果数据总是重复第一条
    match,location,history
    fetch和axios区别,proxy代理配置
    es6语法错误
    JAVA多线程之volatile 与 synchronized 的比较
    做到这一点,你也可以成为优秀的程序员
  • 原文地址:https://www.cnblogs.com/lihahahahaji/p/13847072.html
Copyright © 2011-2022 走看看