Я планировал использовать RegExes для проекта, который позволяет искать шаблоны кода операций в наборе инструкций байткода Java. Мои входы обычно будут длиться от 10 до 65 000 оп.Распознавание образов в конечном массиве чисел
Вот пример шаблона я хотел бы, чтобы соответствовать: 0x1b 0x06 0x7c 0x3c
я иногда нужно, чтобы иметь возможность рассмотреть 2-6 опкоды как же опкодом именно поэтому я использую диапазоны символов регулярных выражений , Вы можете увидеть примеры этого в первой, второй и четвертой группах без захвата в следующем регулярном выражении: (?:0x1[a-d]) (?:0x0[3-8]) 0x7c (?:0x3[b-e])
Я знаю, что должен быть лучший способ сделать это! Какой подход лучше всего подходит для такого типа ввода?
Есть ли причина, по которой вы не просто конвертируете каждый код операции в 'char'? Это займет немного места для хранения, но не так много, и это, вероятно, упростит поиск шаблонов. – Geobits
Альтернативный подход: сопоставьте 0x7c (который должен точно соответствовать) и по нажатию сканирования вперед и назад. BTW: поскольку ваш шаблон ввода не содержит циклов, вы даже можете вручную создать распознаватель с некоторым незначительным битом. – wildplasser
@wildplasser В моем примере я не использовал '+' или '?', Но я хотел бы использовать это или что-то похожее на него. Я могу перевести строки на конечные машины и сделать что-то с этим ... – kstev