diff --git a/public/app/plugins/datasource/logging/query_utils.test.ts b/public/app/plugins/datasource/logging/query_utils.test.ts index 1497202f1e8..21f1dbef07f 100644 --- a/public/app/plugins/datasource/logging/query_utils.test.ts +++ b/public/app/plugins/datasource/logging/query_utils.test.ts @@ -42,4 +42,15 @@ describe('parseQuery', () => { regexp: '', }); }); + + it('returns query and regexp with quantifiers', () => { + expect(parseQuery('{foo="bar"} \\.java:[0-9]{1,5}')).toEqual({ + query: '{foo="bar"}', + regexp: '\\.java:[0-9]{1,5}', + }); + expect(parseQuery('\\.java:[0-9]{1,5} {foo="bar"}')).toEqual({ + query: '{foo="bar"}', + regexp: '\\.java:[0-9]{1,5}', + }); + }); }); diff --git a/public/app/plugins/datasource/logging/query_utils.ts b/public/app/plugins/datasource/logging/query_utils.ts index c36961ced58..795d1e2ceeb 100644 --- a/public/app/plugins/datasource/logging/query_utils.ts +++ b/public/app/plugins/datasource/logging/query_utils.ts @@ -1,11 +1,11 @@ -const selectorRegexp = /{[^{]*}/g; +const selectorRegexp = /(?:^|\s){[^{]*}/g; export function parseQuery(input: string) { const match = input.match(selectorRegexp); let query = ''; let regexp = input; if (match) { - query = match[0]; + query = match[0].trim(); regexp = input.replace(selectorRegexp, '').trim(); }