Je tente de remplacer toutes les occurrences d'un mot, par exemple «foo» entre certaines balises HTML.Expressions régulières JavaScript: correspondance et remplacement de plusieurs occurrences dans une correspondance
<span id=foo> blah blah foo blah foo blah </span>
Je veux remplacer toutes les occurrences de foo qui ne sont pas dans l'étiquette avec bar, de sorte que le résultat final est:
<span id=foo> blah blah bar blah bar blah </span>
Notez que « foo » dans la balise span n'a pas été remplacé .
Je peux réussir à remplacer la première (ou dernière) occurrence de "foo" par mon expression régulière, mais pas par plusieurs instances. Est-ce une situation où je devrais abandonner et ne pas essayer d'analyser cela avec une expression régulière?
Voici l'expression régulière ce genre de travaux:
RegExp('(>[\\w\\s]*)\\bfoo\\b([\\w\\s]*<)',"ig"
ou sans javascript syntaxe:
s/>([\w\s]*)\bfoo\b([\w\s]*<)/
cette syntaxe me permet de faire correspondre (ou devrait) les choses match comme
[foo] mais pas bar-foo ou barfoobar ... toute occurance de foo qui sera remplacée doit se tenir debout, elle ne peut être co obtenu dans un autre mot. Comme une note, le "bla bla" est de longueur variable, et peut être beaucoup de mots différents, pas de mots, ou une combinaison de ceux-ci.
Merci pour vos suggestions.
Merci pour la réponse. Le problème avec ceci est l'expression (c'est ce que j'utilisais *, * btw), c'est qu'il remplace le "foo" dans la balise span. J'essaie d'éviter cela en créant une expression régulière qui * ne correspond pas aux éléments des tags. – user210099
Ok, mais ça ne correspond pas à id = foo, ça correspond juste à foos comme mots séparés. – Zafer