Je veux juste savoir si ruby regex a un opérateur not match comme !~
dans perl. Je pense que ce n'est pas pratique à utiliser (?!xxx)
ou (?<!xxxx)
parce que vous ne pouvez pas utiliser de modèles d'expression régulière dans la xxx
pièce.
92
irb
et de l'essayer. Cela aurait probablement été plus rapide que de publier une question SO.irb
et essayer. Probablement plus rapide, même, que de poster une question SO, et une excellente occasion de tester les choses en général." C'est comme ça que je l' ai entendu, de toute façon.Réponses:
Oui:
!~
fonctionne très bien - vous avez probablement pensé que ce ne serait pas le cas car il manque dans la page de documentation deRegexp
. Néanmoins, cela fonctionne:la source
!~
est documenté sous Objet .RegExp#match?
, que vous pouvez facilement annuler. Selon les notes de publication , il fait encore moins d'allocations que!~
AFAIK (?! Xxx) est pris en charge:
la source
De retour en perl,
'foobar' !~ /bar/
c'était parfaitement perlish de tester que la chaîne ne contient pas "bar".En Ruby, en particulier avec un guide de style moderne, je pense qu'une solution plus explicite est plus conventionnelle et facile à comprendre:
Cela dit, je pense que ce serait spiffy s'il y avait une
.no_match?
méthode.la source