我有Apache的日志,文件的每一行如下所示:
script.php?variable1=value1&variable2=value2&variable3=value3&.........................我需要去掉这部分字符串:
variable1=value1&variable2=value2忽略行的其余部分。我如何在PowerGREP中做到这一点?
我试过了:
variable1=(.*)&variable2=(.*)&但是我得到了value2之后的其余部分。
请帮帮我,对不起我的英语。
发布于 2016-03-30 16:06:06
与Ed Cottrell在他的第二个例子中写的相反,第一个例子工作得更好(即正确);这是因为如果value2的子表达式是非贪婪的,它将匹配尽可能少的字符,即不匹配任何字符。
如果您不介意在匹配中包含value2之后的&,那么您也可以通过使value2的子表达式不贪婪来磨练您的尝试,以便它只扩展到下一个&
variable1=(.*)&variable2=(.*?)&发布于 2016-01-22 07:31:57
将.替换为[^&]并删除最终的&,如下所示:
variable1=(.*)&variable2=([^&]*).将匹配任何它能匹配的字符(基本上是除换行符以外的任何字符)。另一方面,[^&]只匹配非&的字符。
为了获得更好的结果和更快的性能,您还可以用相同的方式替换第一个.,并添加? (非贪婪限定符),如下所示:
variable1=([^&]*?)&variable2=([^&]*?)这是一个。
https://stackoverflow.com/questions/34936389
复制相似问题