Récuperer chaine entre délimiteur regex JAVA

hulkCoder Messages postés 2 Statut Membre -  
KX Messages postés 19031 Statut Modérateur -
Bonjour,

Je voudrais pouvoir récupérer une chaine de caractères en java avec une expression régulière.

Exemple, j'ai la chaine : <TAG> 21 32 53 23 </TAG>

Je voudrais pouvoir récuperer la chaine : TAG

Merci à tous.

3 réponses

  1. KX Messages postés 19031 Statut Modérateur 3 020
     
    L'utilisation des expressions régulières serait maladroite pour faire ce que tu veux, car cela ne prendrait pas en compte l'imbrication des balises, il te faudrait un automate à pile pour faire le traitement (pour compter le nombre de balises ouvertes et fermées), ce ne serait donc pas une expression rationnelle !
    0
  2. hulkCoder Messages postés 2 Statut Membre
     
    Malheureusement, la regex est imposée.

    De plus, en fait, ce qu'il faudrais faire serait ceci...

    example a plusieurs chiffres..

    <TAG> 31 42 6 74 </TAG>
    Récupéré: TAG, 31, 42, 6, 74

    <TAG> 31 42 6 74 104 201</TAG>
    Récupéré: TAG, 31, 42, 6, 74, 104, 201
    0
  3. KX Messages postés 19031 Statut Modérateur 3 020
     
    Tu peux commencer comme ceci (à améliorer)

    String str = "<TAG> 21 32 53 23 </TAG>";        
    String regex = "[\\<](\\w+)[\\>]([\\s\\d]*)[\\<][/](\\w+)[\\>]";
    
    Matcher matcher = Pattern.compile(regex).matcher(str);
    
    while (matcher.find())
    {
        for (int i=1; i<=matcher.groupCount(); i++)
        	System.out.println(matcher.group(i));
        System.out.println();
    }
    0