2011-06-27 18 views
3

我正在寻找一种方法来使用Ruby从URL列表中提取LinkedIn个人档案页面。目前,我遍历的URL和匹配他们对这个表达式:在Ruby正则表达式中否定字符串

/^http:\/\/.+\.linkedin.com\/(pub|in)/ 

然而,在LinkedIn的个人资料目录网页的网址如下:

http://www.linkedin.com/pub/dir 

,所以我希望避免任何其中包含pub/dir路径的链接。我知道可以否定Ruby正则表达式中的字符类,如[^ abc]匹配任何不是abc的字符。有没有办法对字符串做同样的事情?即匹配除“目录”以外的任何字符序列?

+0

什么格式的URL列表在?另外:看起来你忘了逃离.com – Jostein

+0

谢谢,我忘了逃避那个点,但那不是问题。 –

回答

7

您可以使用负向预测。类似于

(pub(?!\/dir)|in) 
+0

谢谢,那曾经工作过。在Pickaxe的正则表达式章节中找不到任何内容。 –

+0

在最新的鹤嘴锄中,第一部分“红宝石”的第7章“正则表达式”中的“控制回溯”(在“高级正则表达式”一节中有很好的写法。 – pedz

相关问题