2016-10-19 7 views
0

У меня есть данные, проиндексированные в этом формате 676767 2343423 2344444 32494444. Мне нужно регулярное выражение для шаблона anlayser последние 7 цифр справа. Ex output: 2494444. Шаблон, который мы пробовали [0-9] {7}, который не работает.Упругое поисковое выражение для получения последних 7 цифр справа

+0

Не уверен, что вы можете получить доступ к группам захвата, но это кажется вашим единственным вариантом - '\ [. * ([0-9] {7}) \]'. Пожалуйста, дайте мне знать, если это сработает для вас. –

+0

Я пробовал через плагин смысла создавать анализатор. но обратная косая черта не принимается при получении ошибки. Это то, что я пытаюсь. POST/телефон { "Настройки": { "анализ": { "анализатор": { "my_email_analyzer": { "типа": "картина", "шаблон": «. \ [* ([ 0-9] {7}) \]», "в нижнем регистре": правда }} }} } – user3351014

+0

Если нет' [ 'и'] 'в строке, вы можете просто попробовать '. * ([0-9] {7}) '. Или если плагин Sense не привязывает шаблон, используйте '[0-9] {7} $' –

ответ

1

В ElasticSearch образец anchored by default. Это означает, что вы не можете положиться на частичных совпадений, вам нужно соответствовать всей строке и capture последние 7 цифр.

Использование

.*([0-9]{7}) 

где

  • .* - будет найдено 0+, кроме символа новой строки символов (как можно больше), а затем вернуться назад, чтобы соответствовать ...
  • ([0-9]{7}) - 7 цифр, помещенных в группу захвата 1.

The Sens e плагин возвращает захваченное значение, если группа захвата определена в шаблоне регулярных выражений, поэтому никакой дополнительной работы по извлечению (или работе с доступом к группе) не требуется.

+0

У меня есть еще один вопрос для вас. Вышеприведенный шаблон получает результат, только если я даю данные выше 7 цифр. Если у меня есть значение длиной менее шести цифр, то оно не возвращается. Нужно ли менять шаблон для получения результатов, если фактическая длина значения меньше 7? – user3351014

+0

Кажется, вам нужно будет вставить пробел в шаблон после '. *', А затем ввести аргумент min для предельного (связанного) квантификатора: '. * ([0-9] {1,7})'. Это приведет к получению от 1 до 7 последних цифр после пробела. –

+0

Пример 1: 123, Пример 2: 6757677687, Пример 3: 123 1232. В этих трех примерах, если я использую шаблон, мне нужно получить выходные данные как. Ex1: 123, Ex2: 7677687, Ex3: 1231232. Не могли бы вы помочь в этом. – user3351014

 Смежные вопросы

  • Нет связанных вопросов^_^