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

Collection et Stream Java Discussion :

[Expression régulière] exclusion de chaînes


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Par défaut [Expression régulière] exclusion de chaînes
    Salut à tous,

    j'ai un petit soucis de syntaxe de mon expression régulière.

    mon but est de chercher des balises qui s'ouvrent puis se ferment sans ouverture ni fermeture de balise similaire à l'intérieur.

    voila ce que j'ai écrit : (exemple avec nom de balise = tag)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <tag>[^(<tag>)|(</tag>)]*</tag>
    j'ai tenté pas mal de variantes sans succès.

    Merci d'avance

  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,


    Je ne sais pas si c'est faisable seulement avec une regexp...
    Quel est l'objectif final de tout cela ?

    a++

  3. #3
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Par défaut
    c'est pour faire des traitements sur un fichier XML, j'ai aussi la solution de passer par du DOM mais je test différentes solutions.

    j'ai déjà utilisé une regexp assez proche qui détecte les balises, je pensais pouvoir l'adapter :
    Merci adiGuba !

  4. #4
    Expert confirmé
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Par défaut
    Salut,
    Comme adiGuba, je crois pas que les RegExp vont suffire pour ce cas là ... il te faut un parser en plus du lexer.

  5. #5
    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
    C'est pour cela qu'il faudrait savoir quels traitements tu veux faire...


    a++

  6. #6
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Par défaut
    le but est de repérer les balises qui s'ouvrent et se ferment pour les supprimer (avec leur contenu).

    l'objectif global est de scinder un fichier XML (MathML) en deux parties.

    en gros si on a une fonction qui supprime ça et qui se nomme maFonction, on a :

    fichier XML 1 = 1ère partie + maFonction( deuxièmePartie)
    et
    fichier XML 2 = maFonction( 1ère partie ) + deuxièmePartie


    je pensai que c'était une regexp classique mais bon, désolé je connais pas plus que ça donc si c'est pas possible ..

    j'ai une solution de remplacement à coup de indexOf et subString mais je doute des perf de mon code.


    Merci de l'attention que vous portez à mon problème

  7. #7
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Par défaut
    Salut,

    Citation Envoyé par Razgriz Voir le message
    Si tu veux une phrase qui commence par "Je veux ", qui finisse par " pour ma regex" et au milieu qui n'ait pas "des caractères" l'expression régulière est "Je veux ".^"des caractères"." pour ma regex" (le . c'est la concaténation, ce n'est pas la synthaxe exacte pour du Java mais c'est une regex correcte.
    Citation Envoyé par beekeep Voir le message
    j'ai déjà utilisé une regexp assez proche qui détecte les balises, je pensais pouvoir l'adapter :
    pour des caractères ça fonctionne, mais pour des chaines c'est autre chose.
    j'ai vu qu'il fallait créer un groupe (parenthèses) et ça marche pour le repérage des chaines de début et de fin :
    mais pas pour le reste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (début)[^(interdit)]*(fin)

  8. #8
    Membre éclairé Avatar de Razgriz
    Profil pro
    Professeur / chercheur en informatique / mathématiques
    Inscrit en
    Avril 2006
    Messages
    391
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Professeur / chercheur en informatique / mathématiques

    Informations forums :
    Inscription : Avril 2006
    Messages : 391
    Par défaut
    Citation Envoyé par Javadoc
    The string literal "\(hello\)" is illegal and leads to a compile-time error; in order to match the string (hello) the string literal "\\(hello\\)" must be used.
    T'as essayé ça? La doc sur la spécification de leurs expressions régulières se trouve dans la classe Pattern, une simple concaténation devrait suffire, si pas la solution est surement sur cette page.

Discussions similaires

  1. Réponses: 13
    Dernier message: 30/06/2010, 15h23
  2. Réponses: 2
    Dernier message: 20/03/2007, 17h58
  3. expression régulière exclusion ' et espace
    Par pinocchio dans le forum ASP.NET
    Réponses: 3
    Dernier message: 05/02/2007, 10h05
  4. Réponses: 4
    Dernier message: 11/08/2006, 13h47
  5. [Regex] Vérifier qu'une chaîne respecte une expression régulière
    Par PeteMitchell dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 13/05/2004, 14h22

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