字符类:减法-Java正则表达式

您可以从另一个范围中减去一个范围,并将其用作新范围。您可以使用字符类的两个变体来实现这一点,即取反和交集。

例如,范围[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