Bonjour à tous,
J'utilise actuellement un plugin pour nagios, écrit évidemment en Perl, qui me permet d'avoir les états des interfaces réseaux en fonction d'une regexp sur le nom. Or, j'aimerais pouvoir mutualiser au possible la définition du service qui s'en suivra. Aussi, j'aimerais donc avoir toutes les interfaces sauf une: "MS TCP Loopback interface".
Merci d'avance,
# ?
Posté par gc (site web personnel) . Évalué à 2.
[^] # Re: ?
Posté par Raphaël SurcouF (site web personnel) . Évalué à 2.
Celui me permet de saisir directement une regexp comme argument à une des options. J'aurais aimé quelque chose à insérer directement entre / /.
Au pire, je peux ajouter une option inversant le matching de la regexp...
[^] # Re: ?
Posté par Pierre Mallard . Évalué à 2.
/^(?!MS TCP Loopback interface)/
(?!...) etant la negation des parentheses
^ pour le debut de chaine, apparement l'assertion negative a besoin d'etre avec quelque chose ...
Cela ne matchera pas : "MS TCP Loopback interface" mais normalement tout le reste
[^] # Re:
Posté par Raphaël SurcouF (site web personnel) . Évalué à 2.
Cette façon de l'écrire fonctionne effectivement bien.
[^] # Re: Re:
Posté par Raphaël SurcouF (site web personnel) . Évalué à 2.
/^[^MS TCP Loopback interface]/
Merci à tous.
[^] # Re: Re:
Posté par gc (site web personnel) . Évalué à 2.
[gc@meuh ~/src/cyote] perl -e 'foreach ("foo", "MS TCP Loopback interface", "Loopback", "bar") {print "$_\n" if /^[^MS TCP Loopback interface]/}'
[gc@meuh ~/src/cyote] perl -e 'foreach ("foo", "MS TCP Loopback interface", "Loopback", "bar") {print "$_\n" if /^(?!MS TCP Loopback interface)/}'
foo
Loopback
bar
[^] # Re: Re:
Posté par Pierre Mallard . Évalué à 1.
lorsque tu utilise les crochets c'est une classe caractere a savoir donc que tu decrit un ensemble qui va matcher tous carcteres appartentant a cette ensemble :
[A-Z] matche par exemple B,C,A,....
[AatT] matche a A t T ...
le circonflexe est la negation de l'ensemble : [^A-Z] matchera toutes lettres sauf les majuscules.
Ainsi
/^[^MS TCP Loopback interface]/
ne matchera pas "Mquelquechose" "Squelquechose" " quelquechose", etc etc etc
(?!...) est donc la seule possibilite offerte pour ne pas matcher une chaine de plus d'un caractere.
(en dehors du !~ mais celui ci s'applique a tout le match ("toto" !~ m/tutu/)<-- VRAI)
[^] # Re: ?
Posté par Pierre Mallard . Évalué à 1.
heu ...désolé
ok ---------------> [] !
[^] # Re: ?
Posté par gnujsa . Évalué à 1.
C'est une regex en programmation orientée objet ?
bon, ok, je vais tester
ok ---------------> [] !
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.