java 正则表达式笔记

Java 正则表达式 | 菜鸟教程

字符类

/**
 * 正则表达式-字符类
 * String
 * public boolean matches(String regex)
 * 语法:
 * []表示匹配单个字符
 * ^表示取反
 * -表示范围
 * 案例:
 * 1,[abc]代表a,b,c三个字符中任意一个字符
 * 2,^abc代表除abc以外的任意字符
 * 3,[a-z]代表所有小写字母中的任意一个,左右包含关系
 * 4,[A-Z]代表所有大写字母中的任意一个,左右包含关系
 * 5,[0-9]之间的任意数字字符
 * 6,[0-9a-zA-Z]代表0-9,a-z,A-Z中的任意字符
 * 7,[a-dm-p]代表a-d,m-p之间的任意字符
 */
public class Test {
    /**
     * 正则表达式-字符类
     * String
     * public boolean matches(String regex)
     * 语法:
     * []表示匹配单个字符
     * ^表示取反
     * -表示范围
     * 案例:
     * 1,[abc]代表a,b,c三个字符中任意一个字符
     * 2,^abc代表除abc以外的任意字符
     * 3,[a-z]代表所有小写字母中的任意一个,左右包含关系
     * 4,[A-Z]代表所有大写字母中的任意一个,左右包含关系
     * 5,[0-9]之间的任意数字字符
     * 6,[0-9a-zA-Z]代表0-9,a-z,A-Z中的任意字符
     * 7,[a-dm-p]代表a-d,m-p之间的任意字符
     */
    public static void main(String[] args) {
        String str = "adc";
        //a开头c结尾,中间abc任意一个字符
        System.out.println(str.matches("a[abc]c"));
    }
}

正则表达式-逻辑运算符

/**
 * 正则表达式-逻辑运算符
 * 1,&& 并且
 * 2,| 或者
 */
public class Test2 {
    /**
     * 正则表达式-逻辑运算符
     * 1,&& 并且
     * 2,| 或者
     */
    public static void main(String[] args) {
        String str = "love";

        System.out.println(str.matches("l[a|o]ve"));
    }
}

预定义字符

/**
 * 预定义字符
 * 1,".":匹配任何字符,如果要表示一个符号.那么就得使用\.
 * 2,"\d":任何数字,[0-9]的简写
 * 3,"\D":任何非数字字符,[^0-9]的简写
 * 4,"\s":空白字符,[\t\n\x0B\f\r]的简写
 * 5,"\S":非空白字符,[^\s]简写
 * 6,"\w":[a-zA-Z0-9]的简写
 * 7,"\W":[^\w]的简写
 */

正则表达式数量词

/**
 * 数量词
 * 1,[0-9]? :0次或者1次
 * 2,[0-9]* :0次或多次
 * 3,[0-9]+ :1次或多次
 * 4,[0-9]{n} :出现n次
 * 5,[0-9]{n,}:至少出现n次,包含n
 * 6,[0-9]{n,m}:n到m次,包含n和m
 */

分组括号

 

public class Test5 {
    /**
     * 分组括号
     */
    public static void main(String[] args) {
        String str = "02314-a3145-xx556-13054-00k00";
        //分成5组
        String regex = "([0-9a-z]{5}-){4}[0-9a-z]{5}";
        System.out.println(str.matches(regex));
    }
}

匹配叠词

public class Test6 {
    /**
     * 匹配叠词
     */
    public static void main(String[] args) {
        String str = "嘿嘿";
        System.out.println(str.matches("(.)\\1"));

        System.out.println("嘿嘿呵呵".matches("(.)\\1(.)\\2"));

        System.out.println("嘿嘿呵呵噢噢".matches("(.)\\1(.)\\2(.)\\3"));

        System.out.println("高高高兴兴兴".matches("(.)\\1{2}(.)\\2{2}"));

        System.out.println("高兴高兴".matches("(..)\\1"));
    }
}
String[]split(String regex)

将此字符串分割为给定的 regular expression的匹配。

StringreplaceAll(String regex, String replacement)

用给定的替换替换与给定的 regular expression匹配的此字符串的每个子字符串。

StringreplaceFirst(String regex, String replacement)

用给定的替换替换与给定的 regular expression匹配的此字符串的第一个子字符串。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值