2021-04-18 11:21  阅读(120)
文章分类:Java 基础教程 文章标签:JavaJava 教程
©  原文作者:w3cschool 原文地址:https://www.w3cschool.cn/java/java-regex-character-classes.html

Java正则表达式教程 - Java正则表达式元字符

元字符是在Java正则表达式中具有特殊含义的字符。

Java中的正则表达式支持的元字符如下:

    ( ) [ ] { { \ ^ $ | ? * + . < > - = !

字符类

元字符[]指定正则表达式中的字符类。

字符类是一组字符。正则表达式引擎将尝试匹配集合中的一个字符。

字符类“[ABC]"将匹配字符A,B或C.例如,字符串“woman"或“women"将匹配正则表达式“wom [ae] n"。

我们可以使用字符类指定一个字符范围。

范围使用连字符-字符表示。

例如,[A-Z]表示任何大写英文字母;“[0-9]"表示0和9之间的任何数字。

^表示不是。

例如,[^ ABC]表示除A,B和C以外的任何字符。

字符类[^ A-Z]表示除大写字母之外的任何字符。

如果^出现在字符类中,除了开头,它只匹配一个^字符。

例如,“[ABC ^]"将匹配A,B,C或^。

您还可以在一个字符类中包含两个或多个范围。例如,[a-zA-Z]匹配任何字符a到z和A到Z.

[a-zA-Z0-9]匹配任何字符a到z(大写和小写)和任何数字0到9。

下表列出了字符类的示例

字符a到z

字符类 含义
[abc] 字符a,b或c
[^xyz] 除x,y和z以外的字符
[a-z]  
[a-cx-z] 字符a到c或x到z,其将包括a,b,c,x,y或z。
[0-9&&[4-8]] 两个范围(4,5,6,7或8)的交叉,
[a-z&&[^aeiou]] 所有小写字母减元音
   
   

预定义字符类

下表列出了一些常用的预定义字符类。

预定义
字符

  含义
. 任何字符
\d 数字。与[0-9]相同
\D 非数字。与[^0-9]相同
\s 空格字符。包括与[\t\n\x0B\f\r]相同。空格标签换行符垂直标签表单Feed回车字符
\S 非空白字符。与[^\s]相同
\w 一个字符。与[a-zA-Z_0-9]相同。
\W 非字字符。与[^\w]相同。

例子

以下代码使用\d匹配所有数字。

\\d在字符串中用于转义\

    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    
    public class Main {  
      public static void main(String args[]) {    
        Pattern p = Pattern.compile("Java \\d");    
        String candidate = "Java 4";    
        Matcher m = p.matcher(candidate);    
    
        if (m != null)      
           System.out.println(m.find());  
     }
    }

上面的代码生成以下结果。

202104181121_1.png

例2

以下代码\w+匹配任何单词。

双斜杠用于转义\

    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    
    public class Main {  
      public static void main(String args[]) {    
        String regex = "\\w+";    
        Pattern pattern = Pattern.compile(regex);    
    
        String candidate = "asdf Java2s.com";    
        Matcher matcher = pattern.matcher(candidate);    
        if (matcher.find()) {      
         System.out.println("GROUP 0:" + matcher.group(0));    
        }  
     }
    }

上面的代码生成以下结果。

202104181121_2.png

点赞(0)
版权归原创作者所有,任何形式转载请联系作者; Java 技术驿站 >> Java 正则表达式元字符
上一篇
Java 集合算法
下一篇
Java 正则表达式模式