JavaSE——正则表达式(1/2):概述、初步使用(普通方法,正则表达式)、书写规则(字符类,预定义字符,数量词,其他,特殊案例)

简介: JavaSE——正则表达式(1/2):概述、初步使用(普通方法,正则表达式)、书写规则(字符类,预定义字符,数量词,其他,特殊案例)

概述

正则表达式

  • 就是由一些特定的字符组成,代表的是一个规则。

作用一:用来校验数据格式是否合法  (更简单、更便捷)

作用二:在一段文本中查找满足要求的内容

String提供的一个陪陪正则表达式的方法


public boolean matches(String regex)        判断字符串是否匹配正则表达式,匹配返回true,不匹配返回false。


初步使用

完成需求:

  • 校验QQ号码是否正确,要求全部是数字,长度是(6-20)之间,不能以0开头。

普通方法

public class InitialUseOne {
    public static void main(String[] args) {
        System.out.println(checkQQ("2668834948"));
    }
    public static boolean checkQQ(String qq){
        //1.判断QQ号码是否为null,是否以0开头,同时可以控制号码长度在6-20之间
        if(qq == null || qq.startsWith("0")|| qq.length() < 6 || qq.length() > 20){
            return false;
        }
        //2.判断是否全都是数字
        for (int i = 0; i < qq.length(); i++) {
            //根据索引提取当前位置处的字符
            char ch = qq.charAt(i);
            //判断ch存储的字符,如果不是数字,则QQ号码不合法。
            if(ch < '0' || ch > '9'){
                return false;
            }
        }
        //3.每个字符都判断完,则说明QQ号码合法
        return true;
    }
}

运行结果:


正则表达式

package user.RegularExpression;
 
public class InitialUseTwo {
    public static void main(String[] args) {
        System.out.println(checkQQ("2668834948"));
    }
    public static boolean checkQQ(String qq){
        return qq != null && qq.matches("[1-9]\\d{5,19}");
// [1-9]代表第一位只能是1-9的数字,\\d代表全部为数字,{5,19}表示后面的位数为5到10位
    }
}

运行结果:


书写规则

正则表达式中,一些基本符号的含义:

  • ^        :取反
  • &&     :交集,不能写单个的&
  • \         :转义字符
  • |         :写在括号外面表示并集
  • []        :里面的内容出现一次

字符类

图片.png

预定义字符

(只匹配单个字符)

图片.png

数量词

图片.png

其他

格式 含义
(?i) 忽略后面字符的大小写
a((?i)b)c 只忽略b的大小写
() 分组

特殊案例

忽略大小写:

public class Test {
    public static void main(String[] args) {
        System.out.println("abc".matches("(?i)abc"));
        //匹配结果为true
 
        System.out.println("ABC".matches("(?i)abc"));
        //匹配结果为true
 
        System.out.println("aBc".matches("a((?i)b)c"));
        //匹配结果为true
 
        System.out.println("ABc".matches("a((?i)b)c"));
        //匹配结果为false
    }
}

运行结果:


"或"的运用

需求:么是3个小写字母,要么是3个数字

public class Test {
    public static void main(String[] args) {
        System.out.println("123".matches("\\d{3}|[a-z]{3}"));
        //匹配结果为true
 
        System.out.println("abc".matches("\\d{3}|[a-z]{3}"));
        //匹配结果为true
 
        System.out.println("aAc".matches("\\d{3}|[a-z]{3}"));
        //匹配结果为false
 
        System.out.println("123abc".matches("\\d{3}|[a-z]{3}"));
        //匹配结果为false
    }
}

运行结果:


分组

需求二:必须是“我爱”开头,中间可以是至少一个“编程”,最后至少是1个“666”

public class Test {
    public static void main(String[] args) {
        System.out.println("我爱编程编程666666".matches("我爱(编程)+(666)+"));
        //匹配结果为true
 
        System.out.println("我爱编程编程6666666666".matches("我爱(编程)+(666)+"));
        //匹配结果为false
    }
}



END



目录
相关文章
|
15天前
正则表达式(有关String当中,有关正则的方法)
正则表达式(有关String当中,有关正则的方法)
|
4天前
|
Java 测试技术 API
JavaSE 面向对象程序设计 正则表达式
JavaSE 面向对象程序设计 正则表达式
8 0
|
21天前
|
Java 程序员
JavaSE——正则表达式(2/2):应用案例、查找信息、用于搜索替换、分割内容
JavaSE——正则表达式(2/2):应用案例、查找信息、用于搜索替换、分割内容
11 0
|
1月前
|
Java
Java正则表达式去掉非汉字字符
【5月更文挑战第11天】Java正则表达式去掉非汉字字符
37 3
|
1月前
|
监控 JavaScript 前端开发
|
1月前
|
数据采集 自然语言处理 Unix
01. 正则表达式概述
01. 正则表达式概述
17 0
N..
|
1月前
|
JavaScript 前端开发 数据安全/隐私保护
正则表达式的常用方法
正则表达式的常用方法
N..
21 0
|
24天前
|
数据库 Python
Python网络数据抓取(8):正则表达式
Python网络数据抓取(8):正则表达式
17 2
|
6天前
|
自然语言处理 JavaScript 前端开发
Python高级语法与正则表达式(二)
正则表达式描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。
|
6天前
|
安全 算法 Python
Python高级语法与正则表达式(一)
Python提供了 with 语句的写法,既简单又安全。 文件操作的时候使用with语句可以自动调用关闭文件操作,即使出现异常也会自动关闭文件操作。