Пытаясь изменить директиву заголовка запроса apache, мне нужно использовать отрицательное регулярное выражение, чтобы сохранить только определенные файлы cookie.
Тестовая строка
someCookie=someValue; anotherCookie=yada61; cookieToKeep1=myValue; cookieToKeep2=myValue2; lastCookie=yada1
Пытаюсь удалить все куки, кроме cookieToKeep1
и cookieToKeep2
.
Я могу использовать приведенное ниже регулярное выражение, но оно соответствует только имени, а не = и значению cookie.
\\b((?!cookieToKeep1=\[^;\]*|cookieToKeep2=\[^;\]*).)\\S+
Директива Apache, которую я пробовал:
RequestHeader edit Cookie "(\b((?!cookieToKeep1=[^;]*|cookieToKeep2=[^;]*).)\S+)" ""
@WiktorStribiżew - у меня есть только имя файла cookie, а не значение.
@anubhava RequestHeader edit Cookie "(\b((?!cookieToKeep1=[^;]*|cookieToKeep2=[^;]*).)\S+)" ""
Попробуйте \b((?:cookieToKeep1|cookieToKeep2)=[^;]*)|(?:(?!(?:cookieToKeep1|cookieToKeep2)=).)+
, см. regex101.com/r/TbwE8U/3
Ну ты получить то, что вам нужно, не так ли?