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