<?php $str = "word <a href=\"word\">word</word>word word"; $str = preg_replace("/word(?!([^<]+)?>)/i","repl",$str); echo $str; # repl <word word="word">repl</word> ?> source: http://pureform.wordpress.com/2008/01/04/matching-a-word-characters-outside-of-html-tags/Unfortunality my project needs a semantic libs avaliable only for Java...// Thanks Celso
3 Réponses :
Avant de fournir une nouvelle réponse, essayez-vous d'analyser un document HTML? Si tel est le cas, n'utilisez pas de regexes, utilisez un analyseur HTML. P>
Mon outil "génère" XHTML remplaçant les termes dans une TXT dans une nouvelle balise à l'aide des termes en tant que valeur à l'intérieur de la balise, j'utilise l'approche de remplacement, car certains termes peuvent être composés comme "Celso Araujo Fontes". EXEMPLE, COMMENT AMÉRÉMENT DE RESTERMEL MYTERM dans cette situation MyTerm est
Utilisez la méthode string.replaceAll (): espère que cela aide. p> p>
Pour traduire cette regex pour une utilisation en Java, tout ce que vous avez à faire est de vous débarrasser des délimiteurs / code> et de modifier le suivi
i code> à un modificateur en ligne,
(? I) code>. Mais ce n'est pas une très bonne regex; Je l'utiliserais à la place:
str = str.replaceAll("(?i)word(?![^<>]++>)", "repl");
Merci Alan pour l'explication!
Vous avez sérieusement besoin de reformuler cette question. 1) Qu'est-ce que cela a à voir avec Java? 2) Quelle est votre entrée et votre sortie attendues?
Résultat attendu: reply replez mot> reply reply