Domingo Reina | 1 Oct 2010 09:43
Picon

Re: Expression régulière

Le 30/09/2010 20:19, yves dutrieux a écrit :
> Bonsoir,
>
> Le 30 septembre 2010 09:17, Samuel Mounier (Liste CGO)<
> ldiffusion <at> cgocean.com>  a écrit :
>
>> yves dutrieux a écrit :
>>
>>> Bonsoir,
>>>
>> [...]
>>
>>
>>    Le 29/09/2010 14:25, Samuel Mounier (Liste CGO) a écrit :
>>>>
>>>>>   Je suis pas sûr d'avoir bien expliqué.
>>>>>
>>>>>> Je dois remplacer par un \n (retour à ligne juste le caractère ' qui ne
>>>>>> sont pas précédé d'un ?)
>>>>>>
>>>>>>
>> [...]
>>
>>
>>
>>>>>   Ouahh... Apparemment, c'est exactement ce dont j'ai besoin.
>>>>
>>>> Sauf que j'ai testé et il me remplace avec un literal le \1 (le \n est
>>>> bien
>>>> interprété mais pas le \1)
>>>>
>>>> Est ce que j'aurai fait un fausse manip ?
>>>>
>>>> J'ai saisie :
>>>> - dans la zone Rechercher =>  ([^?])'
>>>> - dans la zone Remplacer par =>  \1\n
>>>>
>>>>
>>> Domingo a probablement fait une erreur de frappe.
>>>
>>> c'est $1\n qu'il faut mettre ;-)
>>>
>>> Yves
>>>
>>
>> YES...!
>> La ça marche nickel.
>>
>> Merci à vous tous pour m'avoir autant aidé.
>>
>> Petit question subsidiaire, je suppose que le $1 représente le premier
>> caractère de l'expression retournée.
>>
>> Est-ce bien cela ?
>>
> presque... en fait $1 reprend ce qui est entre parenthèse,
> si tu fais plusieurs jeux de caractères, le deuxième jeux sera $2 et ainsi
> de suite.
>
>
>>
>> Si oui alors dans des expressions de retour plus longue, pourrions nous
>> aussi utiliser $2, $3, etc. ?
>>
> Oui
>
> Yves
>
>>
>> [...]
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe <at> fr.openoffice.org
>> For additional commands, e-mail: users-help <at> fr.openoffice.org
>>
>>
>
>
Un exemple valant toujours mieux qu'une longue explication...

1er exemple :
soit la suite de caractères "abcdefg"
dans le champ "Rechercher" mettre (ab)(cd)efg
dans le champ "Remplacer par" mettre $1$2hi
Le moteur va chercher et trouver la suite de caractères abcdefg. Pour le 
remplacement $1 va conserver ce qui se trouve entre les premières 
parenthèses (soit ab), $2 va conserver ce qui se trouve entre les 
deuxièmes parenthèses (soit cd) et efg sera remplacé par hi. Le résultat 
sera donc abcdhi.

2e exemple :
soit la suite de caractères "abc0def1gh23i"
mettre dans le champ "Rechercher" ([a-z])[0-9]([a-z])
Le moteur va chercher une lettre minuscule suivi d'un chiffre suivi 
d'une lettre minuscule. Il trouvera donc c0d et f1g.
Dans le champ "Remplacer par" mettre $1$2.
$1 conservera ce qu'il y a entre les premières parenthèses et $2 
conservera ce qu'il y a entre les deuxièmes parenthèses. c0d sera 
remplacé par cd et f1g sera remplacé par fg. Le résultat final sera donc 
"abcdefgh23i".

J'espère que ces exemples sont parlants.

Bonne journée,
Domingo

Gmane