У меня возникает проблема с шаблоном регулярного выражения, если совпадение не найдено.Проблема с катастрофическим возвратом
Узор регулярное выражение, которое я использую:
^(?:".*?",){4}"(?:.*?)Cookie:\s(?:.*?)Routing=(.*?);
В тестовых данных я использую что-то в подобных:
"a","b","c","d","POST: /portal/start.asp HTTP/1.1\r\nHost: myhost\r\nCookie: w1n0_er=xxxx; routxing=yyyy;"x","x","x","x","x","x","x","x","x","x","x","x","x","x","x","x","x",
Когда параметр «маршрутизации» найден, все работает хорошо. Однако, когда параметр маршрутизации не найден, исключив его из тестовых данных, регулярное выражение продолжает поиск. Я узнал по другим сообщениям, что это вызвано катастрофическим отступлением, но я не могу найти способ избежать этого.
Хорошим способом начать было бы изменить ''. *? "' На '" [^ "] *" '. –
Что вы на самом деле хотите найти? –
Поскольку вы уже знаете, где искать, извлекать 5-я строка с котировкой, и после проверки, содержит ли она то, что вы хотите. –