Récuperer chaine entre délimiteur regex JAVA

Fermé
hulkCoder Messages postés 2 Date d'inscription vendredi 28 septembre 2012 Statut Membre Dernière intervention 28 septembre 2012 - 28 sept. 2012 à 22:42
KX Messages postés 16760 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025 - 29 sept. 2012 à 00:22
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.
A voir également:

3 réponses

KX Messages postés 16760 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025 3 020
28 sept. 2012 à 23:28
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
hulkCoder Messages postés 2 Date d'inscription vendredi 28 septembre 2012 Statut Membre Dernière intervention 28 septembre 2012
28 sept. 2012 à 23:33
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
KX Messages postés 16760 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025 3 020
29 sept. 2012 à 00:22
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