3 Réponses :
(? fonctionne pour l'exemple donné.
Essayez cette expression régulière:
(?<!&)(micro[^A-Za-z0-9])
Démonstration fonctionnelle: https: //regex101.com/r/pxALtw/1/
La chose la plus simple que vous puissiez faire avec votre expression régulière donnée est de vérifier la fonction de rappel de replace.
let str = `micro µ
micro; µ;
micro> µ>`
let op = str.replace(/(&?micro)(?![^;&< ]*;[;>])/g, function(match,g1) {
if( g1.startsWith('&') ) {
return `${g1};`
} else {
return `&${g1};`
}
})
console.log(op)