跳到主要内容

简述Java正则表达式反义类 ?

参考答案:

Java中的正则表达式反义类(Negation Classes)是用于匹配不属于某个字符集的字符。反义类通过使用方括号[]内的^符号来表示。当^符号出现在方括号内的开头时,它表示匹配任何不在方括号内的字符。

以下是Java中常见的反义类示例:

  1. 匹配任何不是数字的字符:
Pattern pattern = Pattern.compile("[^0-9]");
Matcher matcher = pattern.matcher("abc123def");
while (matcher.find()) {
    System.out.println(matcher.group());
}

输出:

a
b
c
d
e
f
  1. 匹配任何不是小写字母的字符:
Pattern pattern = Pattern.compile("[^a-z]");
Matcher matcher = pattern.matcher("HelloWorld");
while (matcher.find()) {
    System.out.println(matcher.group());
}

输出:

H
e
l
l
o
W
o
r
l
d
  1. 匹配任何不是字母和数字的字符:
Pattern pattern = Pattern.compile("[^a-zA-Z0-9]");
Matcher matcher = pattern.matcher("Hello123!");
while (matcher.find()) {
    System.out.println(matcher.group());
}

输出:

!

在上面的示例中,反义类[^...]用于匹配不在指定字符集中的字符。这些字符集可以是数字、小写字母、大写字母等。当正则表达式引擎遇到与反义类不匹配的字符时,它会捕获并返回该字符。

请注意,反义类只匹配单个字符,如果要匹配多个字符,需要使用正则表达式中的其他元字符和量词来组合使用。