Использование регулярных выражений для замены всего, кроме определенной строки - PullRequest
0 голосов
/ 12 декабря 2018

Я пытаюсь заменить все, что не соответствует указанной строке.Это было бы, если бы я мог соответствовать или что-то в этом роде, но я, к сожалению, работаю в программном обеспечении, которое позволяет мне выполнять вызовы регулярных выражений только внутри их функции замены

Например, моя строка будет отформатирована следующим образом:

HTTP/1.1 200 OK
Date: Wed, 12 Dec 2018 20:51:23 GMT
Server: Apache
x-request-id: eb6cf28d-fad9-42e2-ac3d-4efcf66c5f9b
ETag: 83705a06-4562-4bbd-bcbe-c7643d2d6008
Content-Length: 531
Strict-Transport-Security: max-age=31536000;
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-Robots-Tag: none
P3P: CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
Keep-Alive: timeout=15, max=200
Connection: Keep-Alive
Content-Type: application/json;charset=UTF-8

Мне нужно удалить все, что не соответствует

ETag: 83705a06-4562-4bbd-bcbe-c7643d2d6008

У меня естьнаписано некоторое регулярное выражение, которое выбирает ETag: 83705a06-4562-4bbd-bcbe-c7643d2d6008 , которое выглядит как (ETag: [a-zA-Z\d.-]*)

И это действительно выбирает эту строку, но мне нужно заменить все, кроме этой строки,Я прочитал несколько постов, которые спрашивали, предлагал сделать следующее:

^(ETag: [a-zA-Z\d.-]*)

(?:(ETag: [a-zA-Z\d.-]*))

(ETag: [a-zA-Z\d.-]*)[^]

Ни один из техКажется, работает У меня есть образец этого работает на RegExr

Еще раз, мне нужно заменить все, что не соответствует ETag: GUID .Буду признателен за любую помощь в этом.Я уверен, что мне просто не хватает чего-то маленького.

1 Ответ

0 голосов
/ 13 декабря 2018

Регулярное выражение на самом деле не имеет отрицания, но обычно вы можете использовать отрицательные подсказки:

^(?!ETag: [a-zA-Z\d.-]*).*$

Это соответствует началу строки, которая не может соответствовать ETag:..., за которой следует остальная частьлиния.Вы можете увидеть, как это работает в этой демоверсии .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...