【发布时间】:2016-05-06 10:42:37
【问题描述】:
希望有人能帮忙,这让我发疯了!
我正在尝试修改 Logstash Grok 过滤器以解析域名。
目前正则表达式是:
\b(?:[0-9A-Za-z][0-9A-Za-z-]{0,62})(?:\.(?:[0-9A-Za-z][0-9A-Za-z-]{0,62}))*(\.?|\b) 并正确分隔域但是,我需要添加额外的检查以删除 www.。
这是我目前想出的:
\b(?:[0-9A-Za-z][0-9A-Za-z-]{0,62})(^(?<!www$).*$?:\.(?:[0-9A-Za-z][0-9A-Za-z-]{0,62}))*(\.?|\b)
我似乎只能保留域的www. 部分,而不是域本身。
我需要实现的示例:
www.stackoverflow.com 应该是 stackoverflow.com。
我需要专门删除 www. 而不是整个子域。
提前谢谢你!
更新
预期输出的示例输入(以这篇文章为例):
在它的当前状态下:
https://stackoverflow.com/questions/37070358/ 返回www.stackoverflow.com
我需要它返回stackoverflow.com
【问题讨论】:
-
为什么不捕获没有www部分的域名?
-
如果我正确解释了您的问题,我需要包含子域,例如:blog.stackoverflow.com 但特别想删除 www。因此,为什么我尝试回顾一下。不确定如何仅捕获域名?
-
所以你也想要子域,只有当它是 www 你想删除它?你能告诉我们可能的输入吗?