使用正则表达式从列表中删除重复的域
我想使用 PCRE 获取 URI 列表并提取它。
开始:
http://abcd.tld/products/widget1
http://abcd.tld/products/widget2
http://abcd.tld/products/review
http://1234.tld/
结束:
http://abcd.tld/products/widget1
http://1234.tld/
亲爱的 StackOverflow 成员,有什么想法吗?
I'd like to use PCRE to take a list of URI's and distill it.
Start:
http://abcd.tld/products/widget1
http://abcd.tld/products/widget2
http://abcd.tld/products/review
http://1234.tld/
Finish:
http://abcd.tld/products/widget1
http://1234.tld/
Any ideas, dear members of StackOverflow?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
您可以使用简单的工具,例如 uniq。
请参阅评论中 kobi 的示例:
You can you simple tools like uniq.
See kobi's example in the comments:
虽然它的效率非常低,但它可以完成......
请不要使用这个
While it's INSANELY inefficient, it can be done...
Please don't use this
使用 URI 库解析出域,然后将其插入到哈希中。您将覆盖该哈希中已存在的任何 URL,这样您最终将获得唯一的链接。
这是一个 Ruby 示例:
Parse out the domain using a URI library, then insert it into a hash. You'll write over any URL that exists in that hash already so you'll end up with unique links.
Here's a Ruby example:
如果您可以将整个文件作为单个字符串而不是逐行使用,那么为什么不应该像这样工作呢? (我不确定字符范围。)
If you can work with the whole file as a single string, rather than line-by-line, then why shouldn't something like this work. (I'm not sure about the char ranges.)
如果您的系统
输出上有 (g)awk
if you have (g)awk on your system
output