Regex в PoE: шаблоны поиска по сундуку для карт и шмота
Поиск по сундуку в Path of Exile понимает полезную часть регулярных выражений. Какой синтаксис работает, готовые шаблоны для карт и шмота и ошибки, из-за которых поиск молча ничего не находит.
В этом гайде
Поле поиска в сундуке и у торговцев в Path of Exile умеет гораздо больше, чем искать текст. С патча 3.14 оно понимает регулярные выражения: одной строкой можно подсветить все карты с количеством от 70% и без шипов или все ботинки со скоростью передвижения от 30% — сразу по всей секции.
В этом гайде — синтаксис, который реально работает в PoE 1, шаблоны, которые можно вставить как есть, и ошибки, из-за которых поиск тихо ничего не находит.
Важно для русского клиента: поиск идёт по тексту подсказки предмета, а в русском клиенте этот текст русский. Шаблоны ниже написаны для английского клиента; для русского нужны те же приёмы, но русские слова. Страница Карты в Exiled Bench с языком «Русский» сама собирает строку поиска под русский клиент.
Как поиск читает предмет
Поиск идёт по тексту подсказки предмета — тому же тексту, что копируется по Ctrl+C. Важнее всего две вещи:
- Регистр не важен.
Tailwind,tailwindиTAILWINDнаходят одно и то же. - Каждая строка проверяется отдельно. Шаблон может совпасть внутри одной строки, например
Item Quantity: +84% (augmented), но не может захватить две строки.
Синтаксис, который работает
tailwind— любая строка, где есть «tailwind»."movement speed"— кавычки объединяют фразу с пробелами."life" "resist"— два отдельных условия, предмет должен подойти под все (И)."tailwind|elusive"—|внутри условия означает «одно из двух» (ИЛИ)."!thorns"—!в начале скрывает подходящие предметы..— любой один символ,.*— любое количество символов.\d— любая цифра,[7-9]— цифра от 7 до 9.\+— буквальный плюс. Просто+— это оператор regex.(a|b)группирует варианты, а{3}означает ровно три раза то, что стоит перед ним.^привязывает шаблон к началу строки.
Просмотр вперёд (lookahead) и прочие продвинутые возможности работают ненадёжно, так что держите шаблоны простыми.
Шаблоны, которые стоит сохранить
Карты с количеством предметов от 70%:
"quantity: \+([7-9]\d|\d{3})%"
[7-9]\d — это от 70 до 99, а \d{3} ловит 100% и выше. Экранированный \+ совпадает с плюсом в
Item Quantity: +84%.
Карты с размером групп от 30%:
"pack size: \+([3-9]\d|\d{3})%"
Скрыть карты с модами, которые ваш билд не тянет (подставьте свой список). С 3.29 старые моды отражения на картах стали модами шипов (Thorns), так что ищите это слово:
"!thorns|cannot regen"
Соедините через пробел — и карта должна пройти каждое условие:
"quantity: \+([7-9]\d|\d{3})%" "!thorns|cannot regen"
Ботинки со скоростью передвижения от 30%:
"(^| )([3-9]\d|\d{3})% increased movement"
Шмот с максимумом здоровья от 80:
"\+([89]\d|\d{3}) to maximum life"
Ошибки, из-за которых ничего не находится
- Не экранировали
+. У+84%начальный плюс не имеет символа для повторения и может сделать шаблон недопустимым. Пишите\+84%. - Пробелы вне кавычек.
movement speedбез кавычек — это два отдельных условия. Обычно всё равно работает, но может совпасть «movement» и «speed» в двух разных строках. - Ищете текст, которого нет на предмете. Суммы вроде «total elemental resistance» считают трейд-сайты и парсеры предметов, в подсказке их нет. Ищите настоящие строки.
- Формулировки из старой лиги. Текст модов меняется от патча к патчу. Если шаблон, который раньше работал, ничего не находит, скопируйте предмет по Ctrl+C и сравните точную формулировку.
- Превысили лимит длины. У поля поиска есть предел длины строки. Держите шаблоны короткими: ищите характерный
кусок вроде
tailw, а не целое предложение.
Пусть строку напишет программа
Писать regex руками быстро надоедает. poe.re собирает строки для карт, торговцев и флаконов по галочкам.
Exiled Bench делает то же самое из своей базы модов. На странице Карты (Maps), пока вы задаёте пороги количества, редкости и размера групп и нужные или нежелательные моды, он на лету собирает подходящую строку поиска — остаётся скопировать её в игру. Каждый мод, который вы выбираете целью на других страницах, превращается в шаблон, который принимает выбранный тир или выше, так что слабый ролл нужного мода не считается попаданием. Весь процесс — в гайде по роллу карт, а устройство движка — на странице «Как это работает».
Без приложения ту же строку для карт соберёт бесплатный конструктор regex для карт на этом сайте: прямо в браузере, из того же списка свойств, для русского или английского клиента.
Источники
Похожие гайды
Ролл карт в PoE 3.29: пороги, финалы и 8-модовые карты
С Mirage карты падают по тиру, а резцов картографа больше нет; в 3.29 отражение стало шипами. Система порогов для ролла карт в текущей лиге и как отдать этот ролл программе.
Как выбрать базу для крафта: ilvl, доноры и готовая экипировка
Донор, на котором выпадает один мод, не обязательно подходит для готового предмета. Выбираем ilvl, тип защиты, импликит и фрактуру под весь крафт.
Enduring Composure: крафт малого броневого кластера
Малый кластер на два пассива с Enduring Composure: enchant, ilvl, автоматические альты, настройка приложения и решение о регале.
Меньше кликов на подготовку
Ролльте одну базу или секцию сундука, включая регал и экзальты с лимитом. Задайте цели и ограничения; проверьте результат на выбранном этапе.