Tu vas te prendre la tête si tu essaies de matcher des patterns sur plusieurs lignes... Lis plutôt ton fichier ligne par ligne, et teste chaque ligne pour voir si elle match.
D'autre part, "[0-1500]" n'est pas un range valide : 1500 n'est pas un caractère... tu pourrais dire "[0-9]+" pour accepter 1 chiffre ou plus, mais ça n'a pas tout à fait le même sens. Les expressions régulière ne permettent pas (du moins pas facilement) de contrôler la valeur d'un nombre : c'est un outil qui sert à traiter du texte, pas des nombres...
Cela dit, en bidouillant un peu, on peut s'en sortir avec un truc comme ça :
"^SISR: 1, (1500|1[0-4][0-9]{2}|[0-9]{1,3})$"
En gros, on teste séparément les 3 cas possibles :
1500 : la valeur 1500
1[0-4][0-9]{2} : le premier chiffre est 1, le second entre 0 et 4, les 2 derniers entre 0 et 9 (valeurs de 1000 à 1499)
[0-9]{1,3} : entre 1 et 3 chiffres de 0 à 9 (valeurs de 0 à 999)
Partager