/ / Négation de chaînes dans les expressions régulières Ruby - ruby, regex

Négociation de chaînes dans les expressions rationnelles Ruby - ruby, regex

Je recherche un moyen d'extraire des pages de profil LinkedIn à partir de listes d'URL à l'aide de Ruby. Actuellement, je fais le tour des URL et je les compare à cette expression régulière:

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

Cependant, les URL des pages d'annuaire de profil LinkedIn sont les suivantes:

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

, donc je cherche à éviter les liens qui ont lechemin pub / dir en eux. Je sais qu'il est possible d'annuler les classes de caractères dans les expressions régulières Ruby, comme [^ abc] correspondant à tout caractère qui n'est pas abc. Existe-t-il un moyen de faire de même avec des cordes? C'est à dire. correspondant à n'importe quelle séquence de caractères en plus de "dir"?

Réponses:

7 pour la réponse № 1

Vous pouvez utiliser une anticipation négative. Quelque chose comme

(pub(?!/dir)|in)