IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

[Regexp] déspécialisé le caractère "pipe"


Sujet :

Langage Java

  1. #1
    Membre éclairé

    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 385
    Par défaut [Regexp] déspécialisé le caractère "pipe"
    Bonjour,

    je dois parser une document HTML afin de récupérer les valeurs contenues dans une balise <select>.

    Mon problème vient du fait que les valeurs des balises options contiennent plusieurs informations séparées par des pipes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <option value="xxx|yyy|zzz">texte</option>
    J'arrive à récupérer un Element Dom et à faire element.getAttribute("value"). Je souhaite extraire les différentes informations via un split mais celui-ci prend en paramètre un regexp. Si je met le caractère pipe celui-ci est interprété comme un "ou".

    Comment déspécialisé ce caractère ? Sinon, je peux utiliser d'autres solutions (boucle de indexOf("|"), ...).

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Il suffit d'utiliser le caractère \ (sans oublier de la doubler) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String[] data = str.split("\\|");
    Pourquoi dois-je doubler/quadrupler le caractère anti-slash ('\') ?


    Sinon on peut également utiliser \Q\E ou Pattern.quote() pour protéger toute une sous-chaine :
    Comment empêcher les expressions régulières d'interpréter une sous-chaînes ?

    a++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PL/SQL] Chaine de caractères avec une quote
    Par Titouf dans le forum Oracle
    Réponses: 2
    Dernier message: 15/05/2006, 14h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo