Expressions régulières [Résolu]

Signaler
Messages postés
8
Date d'inscription
samedi 13 mai 2006
Statut
Membre
Dernière intervention
4 mars 2008
-
Messages postés
8
Date d'inscription
samedi 13 mai 2006
Statut
Membre
Dernière intervention
4 mars 2008
-
Bonjour,

n'étant pas très à l'aise avec les RegExp je voudrais savoir comment faire pour trouver une occurrence exacte d'un mot dans une chaîne. Je m'explique dans le texte qui suit je voudrais trouver les occurences de 'html' et de 'xhtml' pour ensuite les encapsuler dans une balise :

'Curabitur ligula erat, HTML, auctor quis, cursus et, congue id, augue. Nulla cursus interdum libero. Vivamus nibh tellus, elementum sed, condimentum eu, HTML fermentum semper, diam. Duis vel orci. XHTML Vivamus et ligula. Sed euismod purus ac risus iaculis vehicula. In arcu.'

En utilisant l'expression qui suit:

var regexp = new RegExp('(^|)HTML(|$)',"gi");

la chaine 'HTML' dans XHTML est aussi trouvée, or je voudrais que seules les occurences exactes de 'HTML' soient prises en compte.

Merci d'avance de votre aide!

8 réponses

Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
18
Bonjour à tous et toutes,

J'ai utilisé ceci il y a quelque temps...
var Chaine ='Bonjour je cherche le mot rouge ou ROUGE mais pas de rouget';
var szReg  = new RegExp( '\\b(rouge)\\b', 'gi');
Chaine = Chaine.replace( szReg,''+'$1' +'');
document.write( Chaine);

;O)
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
Bonjour,

>>n'étant pas très à l'aise avec les RegExp
    moi non plus !
    faut dire que ce n'est pas très "naturel" ....
       ( mon excuse pour n'être pas trsè à l'aide !!! )

    ch'tit exemple.... si j'ai compris ?

    var tmp=">xhtml> et <html>";
    alert(tmp.replace(new RegExp("^HTML","gi"),"exemple"));

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
ah ben non... j'ai dis une connerie...   ( ça change pas )

    var tmp="<xhtml> et <html>";
    tmp=tmp.replace(/\shtml/gi,"exemple");
    alert(tmp)

    peut-être.... mais on doit pouvoir dire "uniquement sur un mot entier"...
             mais je ne retouve plus....

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
943
Date d'inscription
mardi 14 novembre 2006
Statut
Membre
Dernière intervention
7 août 2009
3
Bonjour,

d'après mes souvenir datant d'un projet l'année derniere il me semble que ça donnerai plus quelque chose du genre ^HTML$
^signifie commence et $ signifie termine

donc new RegExp("^html$","gi");
//on peut ecrire en minuscule puisqu'on utilise l'option i

Si c'est faux je m'en excuse ;-)

<hr size="2" width="100%" />
Maelo ou Elo --> Mon blog
Messages postés
943
Date d'inscription
mardi 14 novembre 2006
Statut
Membre
Dernière intervention
7 août 2009
3
arf j'ai mal lu d'après ce qu'a écris bul ça fonctionnera pas... desolée

<hr size="2" width="100%" />
Maelo ou Elo --> Mon blog
Messages postés
8
Date d'inscription
samedi 13 mai 2006
Statut
Membre
Dernière intervention
4 mars 2008

Merci de vos réponses rapides ;-)

je précise que j'aurais besoin de rechercher 'uniquement sur un mot entier' comme bul l'a justement fait noter.

D'ailleurs, je ne sais pas si c'est pertinent de spécifier que le mot en question peut se présenter à n'importe quel endroit du texte, c'est-à-dire, début/fin de ligne, avec espacement avant ou après ou suivi des caractères tels que :;,?() etc. Peut-être qu'une recherche 'uniquement sur un mot entier' pourrait éviter d'imaginer tous les contextes possibles d'utilisation d'un mot dans un texte...
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
si persnne ne dit mieux ( ça m'étonnerait bien qu'on ne ledise pas ! )
si tu ne trouves pas dans une doc quelconque
    /\shtml\s/gi         ça devrait le faire....
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
8
Date d'inscription
samedi 13 mai 2006
Statut
Membre
Dernière intervention
4 mars 2008

Le caractère \b semble être le bon!
Ça me parait être la bonne solution.

Merci et à bientôt.