正则表达式学习总结 --- Java(二)

版权声明:个人水平有限,表述不当或疏漏之处欢迎读者提问交流,共同进步! 作者:J__Max 非商业转载请注明出处,商业转载请联系作者获得授权。 https://blog.csdn.net/J__Max/article/details/85227516

正则表达式学习总结 — Java(二)

  • 正则表达式学习总结 — Java(一)

  • 在上一篇博客中,初步了解了正则表达式以及String类内建的几个正则工具,但它们都只是入门,接下来会进入 java.util.regex 包的使用,正则表达式的创建,以及多种应用方法。如有缺漏,欢迎补充;如有错误,希望纠正!

创建正则表达式
  • 在开始学习正则表达式之前,我觉得有必要复习一下一些具有特殊含义的字符,如果你学习了其他的编程语言,C、C++、Python 等等,你肯定对它们不陌生:

    字符 含义
    B 制定字符B
    \xhh 十六进制值为oxhh的字符
    \uhhhh 十六进制表示为oxhhhh的Unicode字符
    \t 制表符Tab
    \n 换行符
    \r 回车
    \f 换页
    \e 转义(Escape)
  • 接下来正式进入正则表达式部分,首先得认识一下字符类。当你学会了使用字符类之后,正则表达式的威力才能真正显现出来。以下是一些创建字符类的典型方式,以及一些预定义的类:

    字符类 含义
    . 任意字符
    [abc] 包含a、b和c的任何字符(和 a
    [^abc] 除了a、b和c之外的任何字符(否定)
    [a-zA-Z] 从a到z或从A到Z的任何字符(范围)
    [abc[hij]] 任意a、b、c、h、i和j字符(和 a
    a-z&&[hij] 任意h、i或j(交)
    \s 空白符(空格、tab、换行、换页和回车)
    \S 非空白符([^\s])
    \d 数字[0-9]
    \D 非数字[^0-9]
    \w 词字符[a-zA-Z0-9]
    \W 非词字符[^\w]
  • 这里只列出了部分常用的表达式,想要了解更多的话可以查看官方JDK文档中 java.util.regex.Pattern 部分的内容。除了字符类的应用,还会使用到逻辑操作符号和边界匹配符:

    逻辑操作符 含义
    XY Y跟在X后面
    X Y
    (X) 捕获组。可以在表达式中用\i引用第i个捕获组
    边界匹配符 含义
    ^ 一行的起始
    $ 一行的结束
    \b 词的边界
    \B 非词的边界
    \G 前一个匹配的结束
  • 下面给出一个示例,该示例中的每一个正则表达式都能够匹配字符序列“Rudolph”:

public static void main(String[] args) {
    for(String pattern : new String[] {
            "Rudolph",
            "[rR]udolph",
            "[rR][aeiou][a-z]ol.*",
            "R.*"
    }) {
        System.out.println("Rudolph".matches(pattern));
    }
}
/*
输出:
true
true
true
true
*/

猜你喜欢

转载自blog.csdn.net/J__Max/article/details/85227516