Forum Programmation.c Des regex, oui mais pas trop

Posté par  (site web personnel) .
Étiquettes : aucune
0
7
juil.
2005
Salut forum.
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  (site web personnel) . Évalué à 1.

    L'erreur PCRE est la suivante :
    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.