Cmt supprimer d mots entre crochet? (exp reg)

riders974 Messages postés 126 Statut Membre -  
KX Messages postés 19031 Statut Modérateur -
Bonjour,

Comme je suis nul en expression réguliére, je cherche a savoir cmt supprimer des mots avec des crochets du style j'ai texte comme ceci par exemple:

[bleu]Je/bleu m'appelle [rouge]Toto/rouge

aprés le processus d'élimination
me retourne que le texte cad: Je m'appelle Toto

Si vous avez la solution, je vous remercie d'avance!!
A voir également:

3 réponses

KX Messages postés 19031 Statut Modérateur 3 020
 
Désolé je ne pourrais pas t'aider plus, je ne connais pas le Java Script...
Peut-être que mon code en Pascal t'aidera... bonne chance !
1
KX Messages postés 19031 Statut Modérateur 3 020
 
Avec quel langage travailles-tu ? Par exemple en Pascal, ça pourrait faire ceci :
function CopieSaufCrochet(s:string):string;
var i,j:integer;
begin
j:=0; result:='';
for i:=1 to length(s) do
    begin
    if s[i]='[' then j:=j+1
                else
    if s[i]=']' then j:=j-1
                else
    if j=0 then result:=result+s[i];
    end;
end;

function CopieSaufSlash(s:string):string;
var i,j:integer;
begin
j:=0; result:='';
for i:=1 to length(s) do
    begin
    if s[i]='/' then j:=1
                else
    if s[i]=' ' then j:=0;
    if j=0 then result:=result+s[i];
    end;
end;

function Simplifier(s:string):string;
begin
result:=CopieSaufSlash(CopieSaufCrochet(s));
end;
0
riders974 Messages postés 126 Statut Membre 8
 
Moi je voudrais avoir la solution en JavaScript!!

J'ai trouver une pré-solution en java script mais y a un bug et je ne sais pa cmt le résoudre!!
Voici ma solution:

<script type="text/javascript">

function traiter_keywords(){
var text_contenu = document.getElementsByName("contenu_page")[0].value;
var exp_reg = new RegExp("<([^<> ]*)>","g");
var exp_spl = new RegExp("[ ;,]+","g");

var text_keywords="";

text_contenu = text_contenu.replace("[","<");
text_contenu = text_contenu.replace("]",">");

text_contenu = text_contenu.replace(exp_reg,"");

alert(text_contenu);

//Tableau de mots
var lst_mots = text_contenu.split(exp_spl);

for(var i=0; i<lst_mots.length; i++){
if(!text_keywords.match(lst_mots[i]) && lst_mots[i].length>2) text_keywords += lst_mots[i]+" ";
if(text_keywords.length>250) break;
}

document.getElementById("KeyW").value = text_keywords;
}

</script>

Avec ce code, je suis obliger de remplacer les crochet par les < et > car je ne sais pas pourquoi, Java n'accepte pas \[ ou \]!!! mais le probléme, c'est que le remplacement ne se fait pas sur la totalité de la chaine text_contenu!!
Donc si il y a plusieurs balise entre crochet, la premiére sera supprimé mais pas les suivantes!!

La je ne sais plus cmt rsoudre mon probléme!!

Aidez moi si vous avez la solution, merci!!
0