0

我有一个巨大的 URL 列表,格式为:

我可以使用什么正则表达式来获取最后三个 URL,但错过了前两个,以便给出每个没有附加城市的 URL,但那些有城市的 URL 被拒绝?

注意:我使用的是 Google Analytics,所以我需要使用 RegEx 来监控我的 URL 及其高级功能。截至目前,谷歌正在拒绝每个正则表达式。

4

4 回答 4

1

一般来说,我可以为使用正则表达式解析 URL 提出的最佳建议是don't

你的时间花在寻找一个为你的语言而存在的专门用于处理 URL 任务的库上好得多。

它将解决所有边缘情况,完全符合 RFC,无错误,安全,并具有出色的用户界面,因此您可以吸出您真正想要的部分。

在您的情况下,建议的处理方法是,使用您的 URL 库,提取元素 s,然后显式处理它们。

这样,您最多只能自己处理路径,而不必担心它是否

http://site.com/
https://site.com/
http://site.com:80/ 
http://www.site.com/ 

除非你真的想。

对于“路径”,您甚至可能希望首先使用拆分器(或专用路径解析器)将路径标记为元素,以确保安全。

于 2009-07-17T14:47:19.623 回答
0

tj111 的当前解决方案不起作用 - 它与您的所有网址匹配。

这是一个有效的方法(我检查了你的值)。它也匹配,无论是否有斜杠:

http:\/\/.*dest\/\w+/?$
于 2009-07-17T14:47:42.883 回答
0
/http:\/\/www\.site\.com\/dest\/\w+\/?$/i

如果它们与那里的“dest”都是同一个站点,则匹配。你也可以这样做:

/\w+:\/\/[^/]+\/dest\/\w+\/?$/i

这将匹配任何带有任何协议(http,ftp)的站点和任何带有 /dest/country 的站点,以及一个可选的 /

请注意,这仅适用于合法的 url 的子集。

于 2009-07-17T14:51:32.280 回答
0

试试这个正则表达式:

^http://www\.example\.com/dest/[^/]+/$

这只会匹配最后三个 URL。

于 2009-07-17T14:55:41.430 回答