【问题标题】:Remove a query string parameter from url with regular expression使用正则表达式从 url 中删除查询字符串参数
【发布时间】:2014-05-21 13:35:23
【问题描述】:

我正在尝试使用正则表达式(在 .NET 中,如果重要的话)从 url 中删除查询字符串参数,但没有运气。

我在 Stackoverflow 上找到的解决方案使用 HttpValueCollection 或类似的帮助程序,或者不使用包括 ?在查询字符串之前。如果可能的话,我希望它能够在普通的正则表达式中工作。

要删除的参数:remove=me

示例网址:

http://{domain}/?remove=me
http://{domain}/?remove=me&foo=bar
http://{domain}/?baz=qux&remove=me&foo=bar
http://{domain}/?baz=qux&remove=me
http://{domain}/?baz=qux&tmpremove=me

删除参数后,剩余的url应该是完整的。没有“&&”、“?&”或“http://{domain}/&...”,它不应该触及“tmpremove=me”:-)

干杯

【问题讨论】:

  • 当已经有不涉及正则表达式的有效解决方案时,您为什么要使用正则表达式 - 一个您不太了解的工具,无法使用它来解决您的问题?
  • 你说的URL应该是完整的但没有“&&”、“?&”等是什么意思?你想保留这些符号吗?
  • @CAustin, && 和 ?& 是草率查询部分操作的剩余部分。
  • 那么尾随 ?或者 & 也被认为是“草率的”,因此是“错误的”?

标签: .net regex


【解决方案1】:

匹配:(?:[?&]remove=me$)|(?:([?&])remove=me&(.+))

替换为:$1$2

【讨论】:

  • 谢谢。在 regexpr/regexpal 中看起来有点奇怪,但在 .net 中可以发挥作用。如果我有凭据,会对此表示赞成。
猜你喜欢
  • 2012-02-06
  • 1970-01-01
  • 2010-12-22
  • 2015-12-31
  • 2019-08-06
  • 2012-02-29
  • 1970-01-01
  • 2017-08-24
相关资源
最近更新 更多