Java 常用正则表达式

正则表达式用于匹配各种类型的字符和模式。以下是一些常见的正则表达式模式及其含义:

一.字符类

  • \\d:匹配任何数字字符,相当于 [0-9]
  • \\D:匹配任何非数字字符,相当于 [^0-9]
  • \\w:匹配任何字母数字字符(包括下划线),相当于 [a-zA-Z0-9_]
  • \\W:匹配任何非字母数字字符,相当于 [^a-zA-Z0-9_]
  • \\s:匹配任何空白字符(空格、制表符、换页符等),相当于 [ \t\n\x0B\f\r]
  • \\S:匹配任何非空白字符,相当于 [^ \t\n\x0B\f\r]

二.数量词

  • *:匹配前面的模式零次或多次。
  • +:匹配前面的模式一次或多次。
  • ?:匹配前面的模式零次或一次。
  • {n}:匹配前面的模式恰好 n 次。
  • {n,}:匹配前面的模式至少 n 次。
  • {n,m}:匹配前面的模式至少 n 次,至多 m 次。

三.边界匹配

  • ^:匹配字符串的开头。
  • $:匹配字符串的结尾。
  • \\b:匹配单词边界。
  • \\B:匹配非单词边界。

四.分组和引用

  • (...):捕获组,匹配括号内的表达式,并记住匹配的文本。
  • (?:...):非捕获组,匹配括号内的表达式,但不记住匹配的文本。
  • \\1, \\2, ...:反向引用,匹配之前捕获的组。

五.示例用法

  1. 匹配一个或多个字母数字字符

    String str = "abc123";
    boolean matches = str.matches("\\w+");
    System.out.println(matches);  // 输出 true
    
  2. 匹配一个电话号码格式(如 123-456-7890)

    String phoneNumber = "123-456-7890";
    boolean matches = phoneNumber.matches("\\d{3}-\\d{3}-\\d{4}");
    System.out.println(matches);  // 输出 true
    
  3. 替换连续的多个空白字符为一个空格

    String str = "a    b\tc  d";
    String result = str.replaceAll("\\s+", " ");
    System.out.println(result);  // 输出 "a b c d"
    
  4. 匹配一个邮箱地址

    String email = "example@test.com";
    boolean matches = email.matches("\\w+@\\w+\\.\\w+");
    System.out.println(matches);  // 输出 true
    
  5. 提取每个单词

    String str = "Hello, world!";
    String[] words = str.split("\\W+");
    for (String word : words) {
        System.out.println(word);  // 输出 "Hello" 和 "world"
    }
    
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 正则表达式:符合一定规则的表达式 作用:用于专门操作字符串。 特点:用于一些特定的符号来表示一些代码操作。这样就简...
    密奕阅读 407评论 0 0
  • 只能输入数字:"^[0-9]$"。只能输入n位的数字:"^\d{n}$"。只能输入至少n位的数字:"^\d{n,}...
    e622a61aee8e阅读 2,092评论 2 1
  • String类和正则表达式 今天的主要内容 Scanner类概述Scanner获取数据出现的小问题及解决方案 St...
    须臾之北阅读 1,958评论 0 3
  • 装载内容说明:纯属个人记录,查看详细内容,请到原文链接1原文链接2 元字符image.png 重复限定符image...
    Aiden_Xi阅读 812评论 0 0
  • 正则表达式的组成规则: 字符: x 代表一个字符,可以是字母、数字等 \\ 反斜线字符。 \n 新行(换行)符 (...
    一喵钟的机会阅读 335评论 0 0