我正在尝试替换与指定字符串不匹配的所有内容。我希望我能参加Match或类似的比赛,但不幸的是,我正在使用只能允许我在其replace函数中进行正则表达式调用的软件
例如,我的字符串将采用以下格式:
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 不匹配的所有内容。我将不胜感激。我确定我只是缺少一些小东西。
答案 0 :(得分:2)
Regex并不是真正的否定词,但通常您可以使用否定的超前行:
^(?!ETag: [a-zA-Z\d.-]*).*$
这与不能匹配ETag:...
的行的开头匹配,然后与其余的行匹配。您可以在此demo中查看其工作原理。