正则表达式

来源:互联网 发布:京东关键词优化 编辑:程序博客网 时间:2024/06/08 02:22
正则表达式
1. 符合一定规律的字符串,如qq号码,邮箱等,String中有一个matches(正则表达式)方法,他可以通过正则表达式判断字符串是否满足某一规律,分割功能public String[] split(String regex):根据给定正则表达式的匹配拆分此字符串。替换功能public String replaceAll(String regex,String replacement):把符合regex的用replacement替换下面给出案例:
    键盘录入qq号码,校验QQ号码。
    import java.util.Scanner;
    public class RegexDemo {
     public static void main(String[] args) {
      /**
       *   案例:(用正则和代码两种方式实现)
       键盘录入qq号码,校验QQ号码。
        需求:
        1:要求必须是5-15位数字
        2:0不能开头
        
        分析:(封装一个方法,这个方法的返回值是布尔类型,参数就是qq号码)
        1.判断qq号码的长度,5-15位之间
        2.不能以0开头
        3.每一位的字符必须是数字
       */
      System.out.println("请输入你需要校验的qq号码");
      Scanner sc = new Scanner(System.in);
      String qq = sc.nextLine();
      
      //将获取到的qq号码传递给我这个方法
      //方式1:使用代码进行校验qq号码
      //System.out.println(isCheck(qq));
      
      //方式2:使用正则表达式校验qq号码
      System.out.println(isCheck2(qq));
     }
     private static boolean isCheck2(String qq) {
      //定义一个校验qq号码的正则表达式,这个正则表达式就是符合我的qq号码的校验规则的正杂表达式
      String reg = "[1-9][0-9]{4,14}";
      //使用正则表达式校验我的qq号码
      boolean flag = qq.matches(reg);
      return flag;
     }
2.规则字符在java.util.regex Pattern类中
 A:字符
  x 字符x(举例:a,1)
  \\ 反斜线字符
        
 B:字符类
  [abc] a、b 或 c(简单类)
  [^abc] 任何字符,除了 a、b 或 c(否定)
  [a-zA-Z] a 到 z 或 A 到 Z,两头的字母包括在内(范围)
  [0-9] 0-9字符
  
 C:预定义字符类
  . 任何字符
  \d 数字:[0-9]
  \w 单词字符:[a-zA-Z_0-9]
  
    
 D:Greedy 数量词
 X? X,一次或一次也没有
 X* X,零次或多次
 X+ X,一次或多次
 X{n} X,恰好 n 次
 X{n,} X,至少 n 次
 X{n,m} X,至少 n 次,但是不超过 m 次
0 0
原创粉丝点击