Самая большая концептуальная проблема вашего решения состоит в том, что предполагается, что данный ключ не встречается нигде в части запроса URL-адреса, ни как часть значения, ни как часть другого ключа.Другими словами, при вводе http://www.example.com?keystone=value1&key=value2
при поиске key
случайное удаление keystone=value1
.Или с учетом ввода http://www.example.com?key1=key2&key2=value2
, поиск key2
вернет http://www.example.com?key1=&key2=value2
, что опять-таки не то, что вы хотите.
Предполагая, что вы не можете / не хотите использовать библиотеку регулярных выражений для этогосамое лучшее улучшение, которое вы можете сделать, это извлечь весь ключ (извлекая все между ?
или &
и последующими =
), пока один из них не совпадет с ключом, который вы ищете, а затемудалите, как и раньше.
И, в зависимости от сделанных в вопросе предположений, вы можете подумать, как можно проанализировать символы, закодированные в URL (например, поиск «многословного ключа» должен соответствовать multi%20word%20key
).