Вы можете использовать чередование с необязательной частью для CORS
и использовать отрицательный класс символов, соответствующий любому символу, отличному от ;
, для значения.
Тогда вы можете получить полное совпадение, используя .group(0)
или получите значение только с помощью .group(1)
(?:AWSALB(?:CORS)?|SilverWebAuth)=([^;]+);
Regex demo | Java демо
Например
String regex = "(?:AWSALB(?:CORS)?|SilverWebAuth)=([^;]+);";
String string = "AWSALB=eIFPQSLLQjg+; Expires=Fri, 20 Mar 2020 03:16:01 GMT; Path=/, AWSALBCORS=eIFPQSLLQjg+vW+; Expires=Fri, 20 Mar 2020 03:16:01 GMT; Path=/; SameSite=None; Secure, SilverWebAuth=48199A; expires=Fri, 13-Mar-2020 04:01:01 GMT; path=/; HttpOnly\n";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(string);
while (matcher.find()) {
System.out.println(matcher.group(0));
System.out.println(matcher.group(1));
System.out.println("");
}
Выход
AWSALB=eIFPQSLLQjg+;
eIFPQSLLQjg+
AWSALBCORS=eIFPQSLLQjg+vW+;
eIFPQSLLQjg+vW+
SilverWebAuth=48199A;
48199A