否定Ruby正则表达式中的字符串

Ric*_*kes 3 ruby regex

我正在寻找一种使用Ruby从URL列表中提取LinkedIn个人资料页面的方法.目前我正在循环URL并将它们与此正则表达式进行匹配:

/^http:\/\/.+\.linkedin.com\/(pub|in)/
Run Code Online (Sandbox Code Playgroud)

但是,LinkedIn个人资料目录页面的URL如下:

http://www.linkedin.com/pub/dir
Run Code Online (Sandbox Code Playgroud)

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

mhy*_*itz 7

您可以使用负向前瞻.就像是

(pub(?!\/dir)|in)
Run Code Online (Sandbox Code Playgroud)