7
votes

Comment utiliser et dans Ruby Regex

J'ai des problèmes avec Ruby Regex.

Comment faites-vous et (&) Regex dans Ruby? P>

EX: P>

cat and dog
cat
dog

I just want to match "cat and dog"


0 commentaires

5 Réponses :


16
votes

Vous pouvez faire quelque chose comme A et utiliser un look positif en avant xxx pré>

voir ici sur rubular lien mis à jour! strong> p>

Ce lookahead positif (? =. * CAT) CODE> Vérifie s'il y a" CAT " Quelque part dans la chaîne, la même chose est faite pour "chien" en utilisant (? =. * chien) code>. Si ces deux assertions sont vraies, la chaîne complète est appariée avec le . * Code> à la fin. P>

L'avantage est qu'il correspondra également à p>

chien et chat p> blockquote>

et non seulement p>

chat et chien p> blockQuote>

mais il correspondra également à p>

chiens et chats p> blockQuote>

Si vous voulez des correspondances exactes, utilisez cette p>

(?=.*\bcat\b)(?=.*\bdog\b).*


0 commentaires

0
votes

et est l'action par défaut dans une REGEXP, c'est-à-dire la première correspondance que cela puis suivi de cela et ainsi de suite.

correspondre à la chat et au chien, utilisez quelque chose comme xxx

Ce qui signifie, correspond à "Cat" suivi de quoi que ce soit puis suivi de "chien". Mais encore une fois, j'ai peut-être mal compris votre question ...


0 commentaires

0
votes

Cela dépend de ce que vous voulez.

Vous pouvez utiliser une carte sauvage xxx

ou xxx

ou xxx


0 commentaires

2
votes

Votre question n'est pas très claire.

Si vous souhaitez ne correspondre que ces chaînes contenant les deux "chat" et "chien" (peut-être comme des parties de un mot), vous pouvez faire: xxx

La regex ci-dessus correspondra "dogme de concaténation", mais pas "Concaténation".

Si vous voulez Assurez-vous que "CAT" et "chien" apparaissent comme des mots par eux-mêmes, faites: xxx

La regex ci-dessus correspondra "chat et chien", mais pas "dogme de concaténation" ou "chat dogme".

Source: http: / /Ruby-Doc.org/docs/programmingRuby/html/intro.html#s5


0 commentaires

-1
votes

Il n'y a pas d'opérateur et dans regexp S, simplement parce que cela n'a pas de sens. Il sera jamais match: comment une chaîne soit être 'CAT' et 'chien' < / code> en même temps?


2 commentaires

schrodinger.pet.speciies.to_s


Bien sûr, une chaîne peut être à la fois un "chat" et "chien" en même temps - "un chat et un chien sont dans la même chaîne" .