Récupération de valeur avec regex
Bonjour,
J'ai besoin de vous pour construire un regex.
J'analyse ligne par ligne, un fichier texte.
La structure est la suivante : la chaine commence par l'une des séquence suivante
Code:
1 2 3
| " ' #xxxx yyyy ' "
ou " // #xxxx yyyy "
ou " /* #xxxx yyyy */ " |
xxxx est un mot obligatoire de taille variable dont la valeur peut être soit "aaaa" ou "bb" ou "ddddddd"
yyyy est un mot optionnel de taille variable
pour les espaces, il peut y en avoir entre 0 et plusieurs (sauf pour séparer xxxx et yyyy, il faut obligatoirement au moins un espace)
Je veux pouvoir récupérer facilement les valeurs de xxxx et yyyy. Si pas de yyyy alors la valeur récupérée doit être ""
Voici mon regex actuel mais il ne fonctionne pas totalement (pour la gestion de "//" qui n'a pas de balise fermante) :
Code:
regex_str = "^\s*((')|(/*)|(//))\s*#((aaaa)|(bb)|(ddddddd))(\s+(\w+))*\s*((')|(*/)).*"
Comment puis-je construire mon regex ?
Aussi comment faire pour dans ma commande pour que xxxx et yyyy se retrouve à l'index 0 et 1 dans results ?
Code:
Set results = re1.Execute(linesArray(lineIndex))