您可以从另一个范围中减去一个范围,并将其用作新范围。您可以使用字符类的两个变体来实现这一点,即取反和交集。
例如,范围[al]和[^ eh]的交集给您字符a至l作为愤怒减去字符[eh]
import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexExample1 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("Enter input text: "); String input = sc.nextLine(); String regex = "[a-l&&[^e-h]]"; //创建一个模式对象 Pattern pattern = Pattern.compile(regex); //匹配字符串中的已编译模式 Matcher matcher = pattern.matcher(input); int count =0; while (matcher.find()) { count++; System.out.print(matcher.group()+" "); } System.out.println("Number of matched characters: "+count); } }
输出结果
Enter input text: abcdefghijklmnopq a b c d i j k l Number of matched characters: 8