Всем привет!
Есть такое РВ:
^(%[\\dA-F]{2}|[\\w\\-.~!$&'()*+,;=])*$
Оно используется для проверки правильности части hostname в URL.
Для более быстрого понимания объясню его суть: любое количество сочетаний закодированных символов (например %AA) или любого одиночного символа из множества -.~!$&'()*+,;= , включая "слвесные" символы. По-скольку теоретически в URL могут встречаться как закодированные так и незакодированные символы, то используется "альтернация" посредством |.
Вот из-за нее то и происходит StackOverflowError , когда мы пытаемся проверить строку на соответствие РВ, в случаях когда длина строки превышает примерно 1500.
Вопрос в том, можно ли как-то избежать использования палки "|" в данном случае?
Ну и конечно альтернативные предложения принимаются