Bonjour,
Je cherche depuis plus d'une semaine et je me casse les dents sur la constitution d'une expression rationnelle. J'aurais grandement besoin de votre aide !
Je ne travaille pas sur PHP mais sur PERL.
Je souhaite que l'algorithme détecte un nombre ainsi que ses bornes:
Exemple:
$test = "Cet été la température moyenne a été de 30.5 deg, avec un minimum de 10 deg et un maximum de 40 deg";
$test =~ m/(.*?)(\d{1,3}\.?\d*).*?(\d{1,3}\.?\d*).*?(\d{1,3}\.?\d*)/;
Mais dans le cas suivant:
Exemple: Cet été la température moyenne testée sur les 15 premiers jours d'août a été de 30.5°, avec un minimum de 10.2° et un maximum de 40.1°.
Comment faire pour que l’algorithme en extrayant les 3 premiers nombres, 15, 30.5 et 10.2, se rende compte que 15 n'est pas compris entre borne inférieure 30.2 et borne supérieure 10.2, qu'il fasse un backtracking et qu'il change le premier nombre par la détection du nombre suivant, en extrayant du coup dans l'ordre 30.5, 10.2 et 40.1?
J'ai essayé de mettre en place un bloc conditionnel avec un bloc de code perl (?({})), et en déclenchant (*SKIP)(*FAIL) mais je j'y arrive pas.
Merci d'avance pour tout élément d'aide!!
Partager