【发布时间】:2020-01-10 10:14:39
【问题描述】:
我需要解析一个复杂的 URL 字符串来获取特定的值。
来自以下 URL 字符串:
/api/rss/feeds?url=http://any-feed-url-a.com?filter=hot&format=rss&url=http://any-feed-url-b.com?filter=rising&format=rss
我需要把这个结果提取成数组格式:
['http://any-feed-url-a.com?filter=hot&format=rss', 'http://any-feed-url-b.com?filter=rising&format=rss']
我已经尝试过使用这个/url=([^&]+)/,但我无法正确捕获所有查询参数。我想省略url=。
提前致谢。
【问题讨论】:
-
我想省略
url=- 你已经省略了它,因为它不是捕获组的一部分。您的数据在第 1 组中。我认为您需要var regex = /url=(.+?)(?=&url=|$)/g,运行regex.exec(str)in a loop 并获取第 1 组。 -
您正在使用捕获组,这就是值所在的位置。试试
url=(.*?)(?=&url=|$))regex101.com/r/snM42Q/1 -
您是否考虑过使用查询字符串解析库而不是使用正则表达式?
标签: javascript regex url string-parsing query-parameters