首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PowerGREP -正则表达式

PowerGREP -正则表达式
EN

Stack Overflow用户
提问于 2016-01-22 07:29:57
回答 2查看 244关注 0票数 2

我有Apache的日志,文件的每一行如下所示:

代码语言:javascript
复制
script.php?variable1=value1&variable2=value2&variable3=value3&.........................

我需要去掉这部分字符串:

代码语言:javascript
复制
variable1=value1&variable2=value2

忽略行的其余部分。我如何在PowerGREP中做到这一点?

我试过了:

代码语言:javascript
复制
variable1=(.*)&variable2=(.*)&

但是我得到了value2之后的其余部分。

请帮帮我,对不起我的英语。

EN

回答 2

Stack Overflow用户

发布于 2016-03-30 16:06:06

与Ed Cottrell在他的第二个例子中写的相反,第一个例子工作得更好(即正确);这是因为如果value2的子表达式是非贪婪的,它将匹配尽可能少的字符,即不匹配任何字符。

如果您不介意在匹配中包含value2之后的&,那么您也可以通过使value2的子表达式不贪婪来磨练您的尝试,以便它只扩展到下一个&

代码语言:javascript
复制
variable1=(.*)&variable2=(.*?)&
票数 1
EN

Stack Overflow用户

发布于 2016-01-22 07:31:57

.替换为[^&]并删除最终的&,如下所示:

代码语言:javascript
复制
variable1=(.*)&variable2=([^&]*)

.将匹配任何它能匹配的字符(基本上是除换行符以外的任何字符)。另一方面,[^&]只匹配非&的字符。

为了获得更好的结果和更快的性能,您还可以用相同的方式替换第一个.,并添加? (非贪婪限定符),如下所示:

代码语言:javascript
复制
variable1=([^&]*?)&variable2=([^&]*?)

这是一个。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34936389

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档