Je me prends la tête depuis pas mal de temps sur un problème tout débile. J'utilise la lib pcre pour scanner une chaîne de caractère. Mes expressions ont été testées sous perl et passent à pcre_compile sans problème. Le problème, c'est que je n'arrive pas à faire gober la règle en entier à PCRE.
Ma chaine est
from 10.0.0.1:10.0.0.10 port 56:58 to 10.0.1.100:10.0.1.110 port 80:90
(une règle de firewall).^from \\s+ (\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}) ( \\s+ : (\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}) )? (\\s+ port \\d+ (:\\d+)? )?
Cette règle matche donc bien. Par contre celle là :
^from \\s+ (\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}) ( \\s+ : (\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}) )? (\\s+ port \\d+ (:\\d+)? )? \\s
ne matche plus, pas plus que toute autre avec quelque chose de plus que la première.Je ne vois vraiment pas la raison.
# Précision
Posté par Adrien BUSTANY (site web personnel) . Évalué à 1.
PCRE_ERROR_NULL (-2)
Either code or subject was passed as NULL, or ovector was NULL and
ovecsize was not zero.
alors que pcre_compile ne revoie aucune erreur !!!
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.