ElasticSearch正则表达式

时间:2014-07-30 07:00:40

标签: regex elasticsearch

尝试使用ElasticSearch 1.1.1将正则表达式应用于下面:

127.0.0.1:35946 [27/Jul/2014:15:18:54.097] api.ch.gov.uk-d9928e1_18001 api.xx.yy.zz-d9928e1_18001/api.xx.yy.zz-d9928e1-1 0/0/0/65/15066 200 1956 - - ---- 2/1/1/0/0 0/0 "GET /company/12345678 HTTP/1.1"

"127.0.0.1"开始很好,但在正则表达式中添加任何其他内容会阻止匹配,甚至添加.+。我认为"127.0.0.1".+?GET /company/\d+会起作用。

我错过了什么?

2 个答案:

答案 0 :(得分:1)

只需尝试以下正则表达式即可匹配127.0.0.1/company/12345678

127\.0\.0\.1.+?GET \/company\/\d+

DEMO

要匹配整个字符串,

127\.0\.0\.1.+?GET \/company\/\d+.*

答案 1 :(得分:1)

来自doc

  

Lucene的模式总是固定不变的。提供的模式必须匹配   整个字符串。

因此,只有与^$锚点完全匹配才能匹配您的模式

如果要匹配,请使用此正则表达式:

127.0.0.1.+?GET \/company\/\d+\s+\w+\/\d+\.\d+\"