Regex optimisation d'échappement des arobases en java

J'ai besoin de remplacer tous les & dans une Chaîne de caractères qui n'est pas partie d'une entité HTML. De sorte que la Chaîne "Cette & les entités > & <" sera de retour "Ce & entités > & <"

Et je suis venu avec cette regex-motif: "&[a-zA-Z0-9]{2,7};" qui fonctionne très bien.
Mais je ne suis pas très habile dans la regex, et quand je teste la vitesse de plus de 100 itérations, il utilise montant double de temps par rapport à une précédente méthode utilisée, qui na pas utiliser les regex. (Mais ne sont pas de travail de 100%).

Testcode:

long time = System.currentTimeMillis();
String reg = "&(?!&#?[a-zA-Z0-9]{2,7};)";
String s="a regex test 1 & 2  1&2 and &_gt; - &_lt;"
for (int i = 0; i < 100000; i++) {test=s.replaceAll(reg, "&amp;");}
System.out.println("Finished in:" + (System.currentTimeMillis() - time) + " milliseconds");

Donc la question serait de savoir s'il y a bien des façons d'optimiser cette expression expression pour qu'elle soit plus efficace?

J'ai eu à écrire les entités avec un trait de soulignement comme &_gt; ou alors il faudrait montrer que le symbole le code a été pour.
Presque quatre d'entre nous ont essayé de modifier votre texte à entourer l'esperluette avec le code de format de citations. Il suffit de sélectionner le texte que vous voulez et utilisez le code, ce qu'il faudra retenir de l'esperluette.

OriginalL'auteur Duveit | 2009-05-11