[VBA, regexp] Recherche avec une expression régulière

Kikoo loleuh,

Dans une macro Word 2003, j’aimerais pouvoir rechercher dans un document toutes les lignes qui commencent soit par:

D="
D1=“
D384=”

J’ai donc pensé à une expression régulière (Word appelle ça des “caractères génériques” mais il me semble que c’est le même principe). Il me faudrait donc une regexp qui cherche D suivi de 0 ou plusieurs chiffres puis des caractères ="

En suivant les exemples fournis par l’aide Office (voir ici, puis cliquer sur le lien “Caractères génériques pour les éléments que vous souhaitez rechercher et remplacer”, je devrais pouvoir obtenir ce résultat avec cette expression:

D[0-9]{0,}="

En effet l’exemple fourni dans l’aide est le suivant:
[indent]Au moins n occurrences du caractère ou de l’expression précédents
Tapez {n,}

Par exemple, can{1,}e recherche recherche « cane » et « canne ».[/indent]

Mais ça ne marche pas et Word me crie que ma recherche contient un caractère invalide. Ce qui ne fonctionne pas c’est le zéro et la virgule. Contrairement à l’exemple, il ne faut pas mettre une virgule mais un point-virgule. En outre il semble que n ne peut pas être égal à zéro… Ce qui ne m’arrange pas, puisque ma regexp doit aussi être capable de trouver la string D=" (sans chiffres).

Quelqu’un a-t’il une idée? Est-ce que je peux formuler ma regexp différemment?

Merci! B)

Je te confirme que n doit etre supérieur à 0, et que jusqu’à présent, j’ai jamais trouvé comment faire un “ou” avec word. Donc a priori, j’dirais que t’es baisé. Le seul truc qui pourrait te sauver à la limite, c’est si t’a rien d’autre que des chiffres qui suivent ton D. Dans ce cas, un simple

te sauvera la life

Merci!
Mais je crois pas que ça puisse faire l’affaire, une étoile étant bien trop permissive…

Par exemple voici ce qui serait trouvé avec l’exemple suivant:

[TextID #]
D="
19.12.05"

Alors bon ben tant pis, on fera autrement… Merci pour l’info! B)

Essaye ça :

D[0-9]*="

  • signifiant : Quantificateur de 0 ou plus

J’espère que tu trouveras.

Par contre je ne pense pas que le sujet soit à sa place dans HardZone…

[quote=“La Denise, post:4, topic: 32124”]Essaye ça :

D[0-9]*="

  • signifiant : Quantificateur de 0 ou plus

J’espère que tu trouveras.

Par contre je ne pense pas que le sujet soit à sa place dans HardZone…[/quote]
Marche pas. J’avais essayé.

[quote=“Spag, post:3, topic: 32124”]Merci!
Mais je crois pas que ça puisse faire l’affaire, une étoile étant bien trop permissive…

Par exemple voici ce qui serait trouvé avec l’exemple suivant:

[TextID #]
D="
19.12.05"

Alors bon ben tant pis, on fera autrement… Merci pour l’info! B)[/quote]
Par contre, ec que tu peux faire, c’est <D*=". le symbole ‘<’ indique le début du mot (j’ai pas trouvé de symbole pour le début de la ligne, hélas).

le symbole pour le début d’une chaine est ^