Regex 如何使用正则表达式从querystring数据中删除项?
我想使用正则表达式函数根据键从querystring中删除项 假设我有一个这样的疑问:Regex 如何使用正则表达式从querystring数据中删除项?,regex,asp-classic,query-string,Regex,Asp Classic,Query String,我想使用正则表达式函数根据键从querystring中删除项 假设我有一个这样的疑问: page.asp?item1=data1&item2=data2&item3=data3 newQs = removeQsItem(url, "item2") 我想调用如下函数: page.asp?item1=data1&item2=data2&item3=data3 newQs = removeQsItem(url, "item2") …并让该函数返回以下内容: pa
page.asp?item1=data1&item2=data2&item3=data3
newQs = removeQsItem(url, "item2")
我想调用如下函数:
page.asp?item1=data1&item2=data2&item3=data3
newQs = removeQsItem(url, "item2")
…并让该函数返回以下内容:
page.asp?item1=data1&item3=data3
。。。但是,如果使用第1项或第3项调用,我也需要它工作——不管它们在查询字符串中的位置如何
到目前为止,我的策略是尝试抓取“requireItem={这里除了符号以外的任何东西}”。但我真的很难理解正则表达式的语法,我的大脑快要融化了
任何帮助都将不胜感激 是否必须使用正则表达式?你能做一些字符串函数吗?比如获取给定字符串“item2”的strpo,然后找到下一个符号的strpo,然后对这些位置进行子串,得到“item2=data2&”(你可能需要在第二个位置的索引中添加1才能真正获得符号?)只需做一个myQueryString.Replace(substringToRemove,”)用零替换子字符串?我不是正则表达式专家,但我一直在努力学习。所以我做了一些研究(尝试和错误),并提出了这个。其他人可能会把这个弄干净
(\bitem2=[A-Za-z0-9]*&|&\bitem2=[A-Za-z0-9]*$|^\bitem2=[A-Za-z0-9]*$)
我会解释一下。首先,一个搜索中有3个搜索
- 第一个查找您的项目,如果它后面跟一个符号&(因此我们可以 删除尾随(&)
- 第二个查找您的项目,如果它是最后一个项目(因此我们可以 删除前面的&)
- 最后一个是如果您的项目是唯一的项目
- (this | that)表示或。匹配这个或那个
- \b匹配单词边界。所以我们知道我们在匹配一个词, 而不仅仅是其中的一部分
- [A-Za-z0-9]*匹配零个或多个字母或数字。如果有空值,则为零
- $匹配行尾
- ^匹配行的开头