Соответствие регулярному выражению вызывает переполнение стека в java

У меня длинная строка, для которой не работает мое регулярное выражение. Для коротких строк, например, в 10 раз короче, он работает нормально, но для длинных строк происходит переполнение стека.

Мой образец

static String shot = "\\["
            + "("
                    + "<"
                    + "[0-9a-fA-F]*"
                    + ">"
            + ")*"
        + "\\]";

нить :

static String s = "[<FFFD><FFFD><FFFD><0020><FFFD><FFFD><FFFD><FFFD><FFFD><0026><FFFD><0028><0029><002A><FFFD><002C><002D><002E><002F><0030><0031><0032><0033><0034><0035><0036><0037><0038><0039><003A><FFFD><003C><FFFD><003E><FFFD><FFFD><0041><0042><0043><0044><0045><FFFD><0047><0048><0049><004A><004B><004C><004D><004E><004F><0050><0051><0052><0053><0054><0055><FFFD><0057><FFFD><0059><FFFD><FFFD><005C><FFFD><FFFD><005F><FFFD><0061><0062><0063><0064><0065><0066><0067><0068><0069><006A><006B><006C><006D><006E><006F><0070><0071><0072><0073><0074><0075><0076><0077><0078><0079><007A><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><201C><201D><FFFD><2019><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD><FFFD>]";

Связанный: stackoverflow.com/questions/214741/what-is-a-stackoverflower‌ ror

Yassine Badache 17.04.2018 10:26

Проблема в том, что движок регулярных выражений все еще много отступает. Вам следует подумать об использовании притяжательных квантификаторов, используйте String regex = "\\[(<[0-9a-fA-F]*>)*+]";.

Wiktor Stribiżew 17.04.2018 10:30

Я пробовал использовать *? вместо *, а также пробовал использовать {0,10} после>

Amrit Raj 17.04.2018 10:33
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
3
36
0

Другие вопросы по теме