您可以使用&&运算符来组合定义一组字符的类。它只会匹配两个类的通用字符(交集)。
package org.nhooo.example.regex; import java.util.regex.Matcher; import java.util.regex.Pattern; public class CharacterClassIntersectionDemo { public static void main(String[] args) { // 定义正则表达式将搜索从“ a”到“ z”的字符 // 并且是'c'或'a'或't'字符。 String regex = "[a-z&&[cat]]"; // 将给定的正则表达式编译为模式。 Pattern pattern = Pattern.compile(regex); Matcher matcher = pattern.matcher( "The quick brown fox jumps over the lazy dog"); // 查找每个匹配并打印 while (matcher.find()) { System.out.format("Text \"%s\" found at %d to %d.%n", matcher.group(), matcher.start(), matcher.end()); } } }
该程序将显示以下结果:
Text "c" found at 7 to 8. Text "t" found at 31 to 32. Text "a" found at 36 to 37.