Dernière mise à jour le 30 décembre 2006

Les expressions régulières sont une sorte de langage très compact pour décrire des chaînes de caractères à rechercher. Un fichier SVG étant un fichier de type XML, il s'agit en fait d'un fichier texte que l'on peut lire sans problème avec un éditeur de texte. Mais le code SVG nécessaire pour un dessin vectoriel peut être très long si bien que la recherche des polices utilisées en devient vite fastidieuse. C'est là qu'il faut impérativement utiliser une expression régulière.

En fait la police d'un texte SVG est définie par le terme font-family: suivi du nom de la police et d'un point virgule ';' ou d'un guillemet double. Il faut donc écrire une expression régulière qui récupère un texte commençant par font-family: et se terminant par un de ces deux caractères. Voici cette expression :

font-family:[^;"]+

Ici [^;"]+ désigne une succession d'un ou plusieurs caractères différents de ; et ". Les crochets désignent un jeu de caractères alors que ^ est une négation disant que l'on spécifie les caractères à ne pas trouver. Le signe + dit qu'il en faut un ou plusieurs successifs. Ainsi toute recherche commencée s'arrêtera à l'un des caractères ; et ". En pratique, la commande grep sous Linux permet d'effectuer très rapidement la recherche sur un fichier SVG ou même tout un répertoire. Il faut par contre mettre un caractère d'échappement devant le + :

$ grep -o 'font-family:[^;"]\+' page.svg
font-family:Arial Black
font-family:Arial Black
font-family:Bitstream Vera Sans
font-family:Bitstream Vera Sans
font-family:Bitstream Vera Sans
font-family:Bitstream Vera Sans Mono
font-family:Bitstream Vera Sans Mono
font-family:Verdana
font-family:Verdana
font-family:Verdana
font-family:Bitstream Vera Sans Mono
font-family:Bitstream Vera Sans Mono
font-family:Bitstream Vera Sans Mono
font-family:Verdana
font-family:Trebuchet MS
font-family:Trebuchet MS
font-family:Trebuchet MS
font-family:Verdana
[...]

Pour ceux qui trouvent dommage de voir apparaître 50 fois la même police, une petite commande sort supplémentaire fait l'affaire :

$ grep -o 'font-family:[^;"]\+' page.svg | sort -u
font-family:Arial Black
font-family:Bitstream Vera Sans
font-family:Bitstream Vera Sans Mono
font-family:Trebuchet MS
font-family:Verdana

Il n'y a plus alors qu'à retrouver les fichiers de police à installer !