Итак, у меня есть интересная проблема: у меня есть строка, и по большей части я знаю, чего ожидать:
http://www.someurl.com/st=????????
За исключением этого случая, символы? Являются буквами или цифрами в верхнем регистре. Проблема в том, что строка содержит мусор: строка разбита на 5 или 6 частей, а между ними много мусора: непечатные символы, иностранные символы, а также обычные старые обычные символы. Короче говоря, вещи, которые могут выглядеть следующим образом: Nyþ = mî; «MÝ × nüq»
Обычно последние 8 символов (?) Находятся вместе в самом конце, поэтому на данный момент у меня есть PHP, который берет последние 8 символов и надеюсь на лучшее. Иногда это не работает, поэтому мне нужно более надежное решение.
Проблема технически неразрешима, но я думаю, что лучшим решением будет захват символов с конца строки, когда они прописные или числовые. Если я получу 8 или больше, предположим, что это правильно. В противном случае найдите символы st = и возьмите столько, сколько мне нужно, чтобы заполнить 8-символьную квоту. Есть ли способ сделать это с помощью регулярных выражений, или мне нужно будет засучить рукава и пойти в стиле вложенной петли?
Обновление:
Чтобы устранить некоторую путаницу, я получаю следующую строку:
[garbage]http:/[garbage]/somewe[garbage]bsite.co[garbage]m/something=[garbage]????????
за исключением того, что мусор находится в непредсказуемых местах в строке (за исключением того, что конец никогда не бывает мусором) и имеет непредсказуемую длину (по крайней мере, я не смог найти ни в одном шаблоне). Обычно все вместе, поэтому я просто беру последние 8 символов, но иногда это не так, что приводит к отсутствующим данным и возвращает мусор: - \