Я сравниваю 2 строки URL-запроса, чтобы увидеть, равны ли они; однако я хочу игнорировать конкретный параметр запроса (всегда с числовым значением), если он существует. Итак, эти 2 строки запроса должны быть равны:
firstName=bobby&lastName=tables¶mToIgnore=2
firstName=bobby&lastName=tables¶mToIgnore=5
Итак, я попытался использовать регулярное выражение, используя функцию REReplaceNoCase:
REReplaceNoCase(myQueryString, "¶mToIgnore=[0-9]*", "")
Это прекрасно работает для приведенного выше примера. Я применяю замену для обеих строк, а затем сравниваю. Проблема в том, что я не могу быть уверен, что параметр будет последним в строке ... следующие 2 строки запроса также должны быть равны:
firstName=bobby&lastName=tables¶mToIgnore=2
paramToIgnore=5&firstName=bobby&lastName=tables
Итак, я изменил регулярное выражение, чтобы сделать предыдущий амперсанд необязательным ... "&?paramToIgnore=[0-9]*"
. Но - эти строки все равно не будут равны, так как у меня останется дополнительный амперсанд в одной из строк, но не в другой:
firstName=bobby&lastName=tables
&firstName=bobby&lastName=tables
Аналогично, я не могу просто удалить предшествующие и следующие амперсанды ("&?paramToIgnore=[0-9]*&?"
), как если бы параметр запроса был в середине строки, которую я зачеркну одним амперсандом слишком много в одной строке, а не в другой - например,
firstName=bobby&lastName=tables¶mToIgnore=2
firstName=bobby¶mToIgnore=5&lastName=tables
станет
firstName=bobby&lastName=tables
firstName=bobbylastName=tables
Кажется, я не могу разобраться в логике этого ... Кто-нибудь может мне помочь с решением?