正则表达式的基本使用

1 正则表达式-字符类
  • 语法示例:[] 表示匹配单个字符 ^ 取反 - 范围

    1. [abc]:代表a或者b,或者c字符中的一个。

    2. [^abc]:代表除a,b,c以外的任何字符。

    3. [a-z]:代表a-z的所有小写字符中的一个。 左右包含

    4. [A-Z]:代表A-Z的所有大写字符中的一个。

    5. [0-9]:代表0-9之间的某一个数字字符。

    6. [a-zA-Z0-9]:代表a-z或者A-Z或者0-9之间的任意一个字符。

    7. [a-dm-p]:a 到 d 或 m 到 p之间的任意一个字符。

2 正则表达式-逻辑运算符
  • 语法示例:
    1. &&:并且
    2. | :或者
3 正则表达式-预定义字符
  • 语法示例:
    1. “.” : 匹配任何字符。如果要表示一个字符点,那么就得使用\.
    2. “\d”:任何数字[0-9]的简写;
    3. “\D”:任何非数字[^0-9]的简写;
    4. “\s”: 空白字符:[ \t\n\x0B\f\r] 的简写
    5. “\S”: 非空白字符:[^\s] 的简写
    6. “\w”:单词字符:[a-zA-Z_0-9]的简写
    7. “\W”:非单词字符:[^\w]
4 正则表达式-数量词
  • 语法示例:
    1. X? : 0次或1次
    2. X* : 0次到多次
    3. X+ : 1次或多次
    4. X{n} : 恰好n次
    5. X{n,} : 至少n次(包含n)
    6. X{n,m}: n到m次(n和m都是包含的)
4 正则表达式-分组–括号( )

public class Test5分组括号 {
public static void main(String[] args) {
/*
正则表达式-分组括号( )
规则相同的分成一组
*/
// ([A-Z0-9]{5}-){4} [A-Z0-9]{5}
String str = “DG8FV-B9TKY-FRT9J-99899-XPQ4G”;
// 分成5组: 前面4组的规则是一样的 后面一组单独规则
System.out.println(str.matches("([A-Z0-9]{5}-){4}[A-Z0-9]{5}"));// true

    System.out.println("+=================================");
    // 扩展---正则表达式匹配叠词
    String str1 = "哈哈";
    // (.) 第一组内容,\\1表示第一组再出现一次
    System.out.println(str1.matches("(.)\\1"));// true
    System.out.println("嘿嘿".matches("(.)\\1"));// true
    System.out.println("呵呵".matches("(.)\\1"));// true
    System.out.println("黑马".matches("(.)\\1"));// false
    System.out.println("+=================================");

    String str2 = "哈哈哈";
    // (.) 第一组内容,\\1{2}表示第一组再出现2次
    System.out.println(str2.matches("(.)\\1{2}"));// true
    System.out.println("嘿嘿嘿".matches("(.)\\1{2}"));// true
    System.out.println("呵呵呵".matches("(.)\\1{2}"));// true
    System.out.println("黑妈妈".matches("(.)\\1{2}"));// false
    System.out.println("+=================================");

    String str3 = "高高兴兴";
    // (.) 第一组内容,\\1表示第一组再出现一次; (.) 第二组内容,\\2表示第二组再出现一次
    System.out.println(str3.matches("(.)\\1(.)\\2"));// true
    System.out.println("嘿嘿嘿哈哈哈".matches("(.)\\1{2}(.)\\2{2}"));// true
    System.out.println("+=================================");

    String str4 = "高兴高兴";
    System.out.println(str4.matches("(..)\\1"));// true
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值