Problème Expression Regulière
Résolu/Fermé
A voir également:
- Problème Expression Regulière
- Expression de recherche - Guide
- Quel fichier contient l’expression trouverpix ? - Forum Programmation
- T'as du ping expression - Forum Réseau
- Expression encoder - Télécharger - Divers Utilitaires
- Modèle fiche expression de besoin excel - Forum Word
2 réponses
[Dal]
Messages postés
6194
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
11 octobre 2024
1 092
Modifié par [Dal] le 1/04/2014 à 12:39
Modifié par [Dal] le 1/04/2014 à 12:39
Si tu utilises l'opérateur de différence numérique
Ce n'est pas comme cela que tu testes une recherche d'expression régulière dans une variable Perl, c'est avec l'opérateur
Il faut faire une négation de ta regexp avec un look-ahead.
Devrait produire de meilleurs résultats.
Dal
=!, Perl va évaluer ce qui est à droite pour tester l'absence d'égalité. Comme c'est une expression régulière, elle est évaluée dans $_ en l'absence d'autre affectation.
Ce n'est pas comme cela que tu testes une recherche d'expression régulière dans une variable Perl, c'est avec l'opérateur
=~.
Il faut faire une négation de ta regexp avec un look-ahead.
while ($barcode =~ /^(?!([a-z0-9]{3}$)).*$/ig){
Devrait produire de meilleurs résultats.
Dal
Salut, merci de ta réponse!
Effectivement ça marche aussi, mais j'ai réglé le problème d'une autre façon, plus longue et plus lourde (remplacement while par until, plus de différence numérique mais =~, ajout d'un élement avant et après le $barcode pour vérifier l'éxactitutde du {3}...).
En tout cas ta méthode est plus légère et probablement plus robuste, merci!
Effectivement ça marche aussi, mais j'ai réglé le problème d'une autre façon, plus longue et plus lourde (remplacement while par until, plus de différence numérique mais =~, ajout d'un élement avant et après le $barcode pour vérifier l'éxactitutde du {3}...).
En tout cas ta méthode est plus légère et probablement plus robuste, merci!