Récuperer chaine entre délimiteur regex JAVA

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

  • Votes
  • Date
  • Date décroissante
  1. Modérateur
    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 !
    1. 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
      1. Modérateur
        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();
        }