正则表达式匹配 URL 中的所有参数

Regex to match all parameters in an URL

我有一个包含参数的 URL 列表,我需要删除所有参数。

示例数据:

https://www.example.com/highlights/on-sale-01304&sa=U&ei=2ca1VJXQOYHnsASG3YGYCg&ved=0CBMQFjAA&usg=AFQjCNHucW7fFrA35qeeJbUlAbsPFQNxLg
https://www.example.com/collections/view-all-01240&sa=U&ei=2ca1VJXQOYHnsASG3YGYCg&ved=0CBgQFjAB&usg=AFQjCNGhZzf7rsslCqgHSngyFAbw_nQmvQ
https://www.example.com/highlights/overstock-and-clearance-01217&sa=U&ei=2ca1VJXQOYHnsASG3YGYCg&ved=0CB0QFjAC&usg=AFQjCNHMfQBA4AP51_ikOGyoGEx-aB0-wQ

我试过这个(\?|\&)([^=]+)\=([^&]+)但是它一次只匹配一个参数并且基本上需要匹配?符号之后的所有内容。

您需要在所有字符 类 中包含一个 \n 字符。因为 [^=]+ 也匹配换行符。

([?&])([^=\n]+)\=([^&\n]+)

然后将匹配到的字符替换为空字符串

DEMO

如果你想去掉 '?' 之后的所有内容,请使用类似 /?.+/g.

的内容
(?:\?|\&)(?:[^=]+)\=(?:[^&\s]+)

通过 empty string 尝试 this.See demo.Replace。

https://regex101.com/r/fA6wE2/9