Cela ne pose aucune difficulté particulière. Il suffit de "transformer" les motifs du champ Rechercher en sous-expressions marquantes, puis de les rappeler dans la zone Remplacer par à l'aide du Trouvé correspondant tout en les inversant.

Prenons un simple exemple. Si l'on souhaite remplacer une liste d'individus sous la forme Prénom, Nom par Nom, Prénom, on pourra indiquer, parmi d'autres expressions régulières, (\w+) (\w+), puis dans le champ Remplacer par : $2 $1.

Mais l'on risque d'être (désagréablement) surpris si les motifs ont chacun leur propre mise en forme. Reprenons notre exemple avec le prénom en italique (style de caractère "Prénom") et le nom en petites capitales gras rouge (style de caractère "Nom").

Examinons le résultat de notre regex selon la façon dont la mise en forme est appliquée.

1) Par attribut ou style de caractère

Comme on peut le remarquer, les motifs ont bien permuté, mais ont laissé sur place leurs attributs qui s'appliquent désormais aux caractères des motifs inversés.

Ainsi, les quatre premières lettres de Bernard ont revêtu l'italique du Jean initial, le "a" s'est paré du "romain" de l'espace sécable. Le style de caractère "Nom" s'étend des deux derniers caractères de "Bernard" jusqu'à la fin du paragraphe.

Pour que le problème ne se perçoive pas, il faudrait que le prénom et le nom soient d'une longueur identique comme avec Poljac Pierre.

2) Par les styles GREP (InDesign CS4)


Avec les styles GREP, le résultat sera celui escompté, quel que soit le type d'expression régulière utilisé pour appliquer les styles de caractères.

Reprenons notre liste dont les noms et prénoms sont formatés avec les deux styles GREP illustrés ci-dessous. Le style "Prénom" s'appliquant au motif placé en début de paragraphe (^), le style "Nom" s'appliquant à celui situé en fin de paragraphe ($).



 
Au lancement de la requête, la permutation s'opère correctement dans la mesure où les styles GREP du paragraphe commandent la mise en forme, ici déterminée par la place (début et fin de paragraphe).



Le résultat est identique si l'on applique des styles GREP à des chaînes de caractères précises, par exemple des chiffres ou des symboles monétaires comme ci-dessous :




Si on utilise, comme regex de recherche, (\d+) ([$£€]) ou (.+) (.+), le remplacement $2 $1 donne le résultat souhaité, chaque motif conservant ses styles GREP.



Les chaînes pourraient se suivre sur une seule et même ligne, le résultat serait inchangé. Ici encore, l'inversion des motifs s'opère avec celles des attributs de mise en forme.


3) Par styles de caractères appliqués aux styles GREP (InDesign CS4)


Ce dernier cas est un peu particulier. Nous avons en effet appliqué des styles de caractères à des styles GREP. On le voit, le résultat ne répond sûrement pas à nos attentes. Là encore, les motifs se sont "débarrassés" de leur mise en forme.




Mais à la différence du premier cas analysé, style de caractère et style GREP se mélangent à la jonction des deux motifs.



Le style de caractère "Prénom" couvre les huit premiers caractères, espace comprise, mais s'imbrique au style GREP "Nom" du motif de fin (\w+)$.


À moins de disposer d'InDesign CS4 et d'utiliser les styles GREP seuls pour la mise en forme, la permutation s'accomode donc mal des attributs de caractères. Jusqu'à présent, nous sommes en peine de donner une solution satisfaisante…