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

时间:2015-01-14 02:00:21

标签: regex

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

示例数据:

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

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

3 个答案:

答案 0 :(得分:1)

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

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

然后用空字符串替换匹配的字符。

DEMO

答案 1 :(得分:0)

如果您想在'?'之后删除所有内容,请使用/?.+/g之类的内容。

答案 2 :(得分:0)

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

试试这个。参见demo.Replace by empty string

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