【发布时间】:2011-12-16 16:29:38
【问题描述】:
我想使用正则表达式来解析给定输入 URL 的根域。我已经知道,在给定适当的输入 URL 的情况下,基本上没有 RegEx 不能被“破坏”,这就是为什么我想将给定 RegEx 的使用限制在给定 TLD 列表的原因(如果可能的话)。这是一个例子:
假设我有一个输入文件,将通过正则表达式一次运行文件中的每个 URL。这是输入文件:
www.google.co.uk
www.google.co.uk/something
www.google.com/
www.google.com/something
google.com/
google.com/something
subdomain.google.com/
subdomain.google.com/something
www.subdomain.google.com/
www.google.net/
www.google.net/something
google.net/
最后的结果,应该是这样的:
google.co.uk
google.co.uk
google.com
google.com
google.com
google.com
google.com
google.com
google.com
google.com
google.com
google.com
我想要的重要一点是,正则表达式可以根据以下内容进行解析:
从给定的 TLD 列表中找到给定 URL 中的 TLD(例如:
(co.uk|com|net|edu|gov|etc|etc|etc)
如果找到给定的 TLD 之一,则匹配并解析它找到的 TLD 左侧(包括)的所有内容,直到它到达行首或到达另一个“。”
如果可以根据给出的“伪代码”描述编写一个匹配的正则表达式,它应该准确地解析出示例输入数据。
【问题讨论】:
-
你用的是什么框架?许多人已经内置了处理 url 的工具。
-
出于所有意图和目的,我只想说我坚持使用纯正则表达式解决方案。想象一下,您必须使用 PHP preg_match 和正则表达式来执行我上面描述的操作,而您就是我所在的位置。
标签: regex dns text-parsing