Bonjour,
J'aimerais extraire une sous-chaîne d'un ensemble de chaîne formées sur le même modèle, des DNs de LDAP :
cn=%s,dc=%s,dc=%s
Comment mettre en oeuvre une fonction qui réalise cette extraction avec une regexp ?
Version imprimable
Bonjour,
J'aimerais extraire une sous-chaîne d'un ensemble de chaîne formées sur le même modèle, des DNs de LDAP :
cn=%s,dc=%s,dc=%s
Comment mettre en oeuvre une fonction qui réalise cette extraction avec une regexp ?
J'ai trouvé ça comme regexp :
^cn=[^, ]+,dc=ifremer,dc=fr$
Mais je ne connais pas de fonction Java qui permettrait d'extraire la partie en rouge...
Bonjour,
Tu peux regarder du coté de ce genre de code :
La REGEX n'est peut-être pas tout à fait correct pour ton utilisation donc à vérifier. Mais en tout cas l'idée est là et je m'orienterais dans quelque chose de semblable à ta place.Code:
1
2
3
4
5
6
7
8
9
10
11
12 String taChaine = "cn=test1,dn=test2,dn=test3"; Pattern p = Pattern.compile("=(\\w*),?"); Matcher m = p.matcher(taChaine); while (m.find()) { System.out.println("Sous chaine trouvée: "+m.group()); }
Edit :
Si t'as seulement la chaine rouge à extraire, tu peux à la limite utiliser substring. Tu récupère la position du premier caractère "=" ainsi que la position du caractère "," à l'aide de la méthode indexof et tu finis par utiliser la méthode substring.
Merci manu f
Je vais utiliser l'option validation de ma regexp + substring avec les index.