Перейти к содержимому

Regex в PoE: что на самом деле делает строка поиска

5 мин чтенияPoE 1

Любое поле поиска в Path of Exile — стеш, окно вендора, картное устройство, атлас — принимает регулярное выражение. Большинство узнаёт об этом из стены знаков препинания, которую кто-то выложил в тред: скопировали, пользуетесь, а что там написано — не знаете.

И не надо. Для этого здесь генераторы regex. Но понимание того, что игра делает с этой строкой, превращает её из заклинания в инструмент, которым можно целиться. Так что вот короткая версия.

Что игра делает со строкой

Она сверяет строку с текстом, который окно способно показать. Не с данными предмета — со словами, которые на нём напечатаны.

Из этого различия следует всё остальное. Игра не знает, что вы имели в виду «карта без отражения»; она знает, встречаются ли набранные буквы где-нибудь в напечатанном на предмете.

Три следствия, которые стоит держать в голове:

  • Сверяется напечатанный текст, поэтому язык важен. Строка, собранная под английский клиент, не сработает на русском — там другие слова. Генераторы здесь умеют оба: переключаете язык сайта, и паттерны переключаются вместе с ним.
  • Совпадение по куску тоже считается. Написали отраж — совпадёт любая строка, где эти буквы встречаются, в любом месте.
  • Регистр не важен, о нём можно не думать.

Стена в 250 символов

В поле влезает 250 символов. Это и есть настоящее ограничение, и именно из-за него писать regex руками мучительно: выразить можно почти что угодно, но не помногу за раз.

Сюда и уходит вся хитрость хорошего паттерна. Если нужно исключить «Монстры отражают 18% стихийного урона», вы не пишете это предложение. Вы пишете самый короткий кусок текста, который встречается в этом моде — и больше нигде из того, что окно может показать. Иногда это четыре символа.

Искать такие куски руками — самая нудная часть работы, и её сайт берёт на себя: каждый паттерн в генераторах — кратчайший уникальный фрагмент для своего мода, проверенный против всех баз снаряжения, уников, гемов и названий флаконов в игре. Именно это позволяет уложить дюжину модов в лимит вместо трёх.

Два вопроса

Любая собранная регулярка отвечает на один из двух вопросов, и они противоположны.

«Что я не побегу?» — это про карты. Вы собираетесь запускать карту, и есть моды, с которыми она того не стоит. Нужна строка, которая подсвечивает карту, если на ней нет ни одного из них.

«Что я ищу?» — флаконы, плитки, реликвии, окно вендора. Нужна строка, которая подсвечивает предмет, если на нём есть хотя бы одно из нужного.

Генераторы знают, на какой вопрос отвечает их категория, поэтому вы просто отмечаете нужное. На картах отмечаете то, от чего отказываетесь; на флаконах — то, за чем охотитесь. Путевые камни в PoE 2 — исключение: они спрашивают оба вопроса сразу, потому что ровно так их и роллят.

Что есть для PoE 1

Восемь генераторов, каждый — своя страница:

  • Моды карт — главный. Отмечаете то, что не побежите, добавляете минимум количества или размера паков, забираете строку в картное устройство.
  • Скарабы, Тату, Рунографы — здесь совпадение идёт по названиям предметов, а не по модам, и рядом стоят живые цены из наших же данных биржи. Можно попросить «всё дороже 5 хаосов» вместо того, чтобы помнить, что в этой лиге чего стоит.
  • Флаконы — то, что роллите.
  • Поиск у вендора — 592 строки модов плюс панель гнёзд: связи, цвета и количество гнёзд, без перечисления всех порядков, в которых игра может их напечатать.
  • Хаос-рецепт — полосы уровня предмета и переключатели, списка модов нет вовсе.
  • Цена в стеше — найти то, что оценено дешевле 10 хаосов или в вилке между двумя числами.

Как сохранить то, что собрали

Строка, доведённая под карты этой лиги, нужна не только сегодня вечером. Любой сборщик сохраняет наборы — с названием и заметкой, — и набор хранит ровно то же, что несёт ссылка, поэтому его можно передать другу как есть.

Без аккаунта наборы лежат в том браузере, где вы их собрали: пять на категорию, шестой вытесняет самый старый. Аккаунт хранит те же пять, но уже не в браузере — те же наборы открываются на телефоне и на любом компьютере, с которого вы играете. Подписка на Patreon поднимает, сколько наборов держит категория, и место — единственное, что она поднимает: ни один инструмент сайта за неё не спрятан.

Две вещи, которые удивляют

Запрос по гнёздам может съесть весь бюджет. «Три названных цвета где угодно в шестилинке» — это больше двух тысяч символов, потому что приходится расписывать все порядки, в которых игра может их напечатать. Сузите цепочку — и запрос схлопывается до доли от этого. Генератор показывает цену запроса по ходу дела: дорогой вопрос видно до того, как вы его задали.

Счётчик важнее строки. Каждый генератор считает ваши 250 символов, пока вы отмечаете. Когда вылезли за лимит, правильный ответ — не более хитрый паттерн, а выкинуть моды, на которые вы бы просто согласились, и оставить те, ради которых полезли бы покупать.

Честные ограничения

Regex говорит, что на предмете написано, а не сколько он стоит. Он не умеет арифметику, поэтому «суммарное сопротивление больше 100» попросить нельзя. Он не сравнивает два числа. И он работает с текстом, поэтому мод, который в двух местах печатается по-разному, — это два паттерна, а не один.

В этих рамках он — самый быстрый фильтр в игре, и стоит одну вставку из буфера.

Начните с модов карт, если катаете карты сегодня, или со страницы раздела, если хотите посмотреть остальное.

КартографПишет здешние гайды
0Войдите, чтобы поставить лайк.

Читать дальше

← Все посты