我想使用正则表达式函数根据键从查询字符串中删除项目。
说我有这样的查询字符串:
page.asp?item1=data1&item2=data2&item3=data3
我想调用这样的函数:
newQs = removeQsItem(url, "item2")
...并让该函数返回:
page.asp?item1=data1&item3=data3
...但如果使用第1项或第3项调用,我也需要它才能工作 - 无论它们在查询字符串中的位置如何。
到目前为止我的策略是尝试抓住“requiredItem = {除此之外的任何东西}”。但我真的在用正则表达式语法挣扎,我的大脑即将融化。
非常感谢任何帮助。
答案 0 :(得分:0)
是否必须使用RegEx?你能做一些字符串函数,比如获取给定字符串“item2”的StrPos然后找到下一个&符号的StrPos然后只是SubString那些位置得到“item2 = data2&” (你可能不得不在第二个位置的索引中加1以实际获得&符号吗?)只需要做一个myQueryString.Replace(substringToRemove,“”)来替换那个没有任何东西的子串?
答案 1 :(得分:0)
我不是正则表达的专家,但我一直在努力学习。所以我做了一些研究(以及试验和错误),并想出了这个。其他人可能会让这个更干净。
(\bitem2=[A-Za-z0-9]*&|&\bitem2=[A-Za-z0-9]*$|^\bitem2=[A-Za-z0-9]*$)
我会解释一下。首先,在一个搜索中有3个搜索。
代码: