Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2027 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [Java] Regexp pour sortir un chemin sans le nom de fichier

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Java] Regexp pour sortir un chemin sans le nom de fichier

n°695272
Jubijub
Parce que je le VD bien
Posté le 07-04-2004 à 22:48:48  profilanswer
 

Sous jEdit la méthode getPath() du buffer courant donne le chemin entier du fichier
Ex :  
 
c:\tex\jocebuglist.tex
 
Je veux isoler c:\tex...
 
g fait ca :  
 
 
Je veux virer la fin du fichier contenue après le dernier \, ce qui donne donc :
chaine.replace(" \\\\w*\\.\\btex\\b","" );
 
ce qui si g bien compris permet de me donner un motif commençant par un \, contenant un nombre de donné de caractère alphanumérique et se terminant par .tex  
 
hors ca marche pas...la chaine contient la même chose à l'arrivée...


---------------
Jubi Photos : Flickr - 500px
mood
Publicité
Posté le 07-04-2004 à 22:48:48  profilanswer
 

n°695292
the real m​oins moins
Posté le 07-04-2004 à 23:07:34  profilanswer
 

euh String.substring(0,String.lastIndexOf(File.pathSeparator)) [:kiki]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°695294
Jubijub
Parce que je le VD bien
Posté le 07-04-2004 à 23:13:01  profilanswer
 

ben oui mais si tu ignores l'existence du pathseparator, ca vient pas à l'idée tt seul ce genre de construction...surtout que rien dans String peut y faire penser...
 
Pour ma culture G, y'a quoi qui merde dans ma regexp ?


---------------
Jubi Photos : Flickr - 500px
n°695317
the real m​oins moins
Posté le 07-04-2004 à 23:27:53  profilanswer
 

Jubijub a écrit :

ben oui mais si tu ignores l'existence du pathseparator, ca vient pas à l'idée tt seul ce genre de construction...surtout que rien dans String peut y faire penser...
 
Pour ma culture G, y'a quoi qui merde dans ma regexp ?

ben meme sans pathSeparator, tu fais la meme chose avec '\\' quoi [:mlc]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°695320
Jubijub
Parce que je le VD bien
Posté le 07-04-2004 à 23:32:20  profilanswer
 

merci d'avoir apporté une réponse à mon problème, mais je persiste :  
 
Pour ma culture G, y'a quoi qui merde dans ma regexp ?
 
PS : c vrai que j'y avais pas pensé du tout...la manipulation de chaine j'en fais depuis 2h donc si tu veux j'ai pas encore tt les usages possibles de la class String et autres en tete, je sais, je mérite le fouet grand maitre...
 
   [:bonux]


---------------
Jubi Photos : Flickr - 500px
n°695342
nraynaud
lol
Posté le 08-04-2004 à 00:05:06  profilanswer
 

c'est une regex alors qu'un simple parcourt suffit ?
 
tiens, je vais aller vérifier que le code de lastIndexOf est bien de droite à gauche pour fêter ça.


---------------
trainoo.com, c'est fini
n°695348
nraynaud
lol
Posté le 08-04-2004 à 00:18:09  profilanswer
 

nraynaud a écrit :

c'est une regex alors qu'un simple parcourt suffit ?
 
tiens, je vais aller vérifier que le code de lastIndexOf est bien de droite à gauche pour fêter ça.

Code :
  1. static int lastIndexOf(char[] source, int sourceOffset, int sourceCount,
  2.                            char[] target, int targetOffset, int targetCount,
  3.                            int fromIndex) {
  4.         /*
  5.  * Check arguments; return immediately where possible. For
  6.  * consistency, don't check for null str.
  7.  */
  8.         int rightIndex = sourceCount - targetCount;
  9. if (fromIndex < 0) {
  10.     return -1;
  11. }
  12. if (fromIndex > rightIndex) {
  13.     fromIndex = rightIndex;
  14. }
  15. /* Empty string always matches. */
  16. if (targetCount == 0) {
  17.     return fromIndex;
  18. }
  19.         int strLastIndex = targetOffset + targetCount - 1;
  20. char strLastChar = target[strLastIndex];
  21. int min = sourceOffset + targetCount - 1;
  22. int i = min + fromIndex;
  23.     startSearchForLastChar:
  24. while (true) {
  25.     while (i >= min && source[i] != strLastChar) {
  26.  i--;
  27.     }
  28.     if (i < min) {
  29.  return -1;
  30.     }
  31.     int j = i - 1;
  32.     int start = j - (targetCount - 1);
  33.     int k = strLastIndex - 1;
  34.     while (j > start) {
  35.         if (source[j--] != target[k--]) {
  36.      i--;
  37.      continue startSearchForLastChar;
  38.  }
  39.     }
  40.     return start - sourceOffset + 1;
  41. }
  42.     }


oulà, c'est même du agli opimized !


---------------
trainoo.com, c'est fini
n°695350
Jubijub
Parce que je le VD bien
Posté le 08-04-2004 à 00:18:41  profilanswer
 

j'ai compris que la regex ct pas le mieux...mais ct ma première idée, et j'aimerais bien l'emmener jusqu'au bout...


---------------
Jubi Photos : Flickr - 500px
n°695351
nraynaud
lol
Posté le 08-04-2004 à 00:20:35  profilanswer
 

moi je corrigerai pas ta regex, j'irais même jusqu'à dire que je ne l'ai pas lue.
 
Les regex c'est trop chiant à lire et à prévoir ce que ça va faire pour être utile.


---------------
trainoo.com, c'est fini
n°695354
Jubijub
Parce que je le VD bien
Posté le 08-04-2004 à 00:24:20  profilanswer
 

ah, c intéressant ca : si tu t'en sers pas, ca sous entend qu'il y a des méthodes aussi fines avec des fonctions standards pour sortir des patterns précis ?
 
genre un mot qui commence et se termine par la même lettre, ou qqc pour vérifier la validiter d'une adresse mail (c que \w+@w+(\.\w)+ fait par ex)....


---------------
Jubi Photos : Flickr - 500px
mood
Publicité
Posté le 08-04-2004 à 00:24:20  profilanswer
 

n°695356
the real m​oins moins
Posté le 08-04-2004 à 00:25:25  profilanswer
 

agli ?


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°695372
nraynaud
lol
Posté le 08-04-2004 à 00:39:58  profilanswer
 

personne ne ris jamais à mes blgues !
 
highly.
 
 


---------------
trainoo.com, c'est fini
n°695373
nraynaud
lol
Posté le 08-04-2004 à 00:41:45  profilanswer
 

Jubijub a écrit :

vérifier la validiter d'une adresse mail (c que \w+@w+(\.\w)+ fait par ex)....

nicolas.raynaud@moncul.com met en défaut ta regex à la con.
 
La validation de données, ça se fait après lecture d'une RFC, pas en tripatouillant des regex !


---------------
trainoo.com, c'est fini
n°695374
nraynaud
lol
Posté le 08-04-2004 à 00:43:38  profilanswer
 

tiens bah nraynaud@univ-mars.edu aussi.


---------------
trainoo.com, c'est fini
n°695375
Jubijub
Parce que je le VD bien
Posté le 08-04-2004 à 00:46:44  profilanswer
 

ct un exemple hein...t'a pas répondu à ma question


---------------
Jubi Photos : Flickr - 500px
n°695376
nraynaud
lol
Posté le 08-04-2004 à 00:49:32  profilanswer
 

Jubijub a écrit :

ct un exemple hein...t'a pas répondu à ma question

je sais pas trop, je pense que dans ce cas, si la RFC est pas trop bordélique je ferais une regex.
 
mais je dois avouer qu'il ne me viendrait pas trop à l'esprit de valider les emails.


---------------
trainoo.com, c'est fini
n°695380
Jubijub
Parce que je le VD bien
Posté le 08-04-2004 à 00:51:28  profilanswer
 

C'était un exemple !!!!  [:athlonmp]  [:aless]  
 
Question d'ordre plus général : existe-t-il un moyen purement java de trouver des motifs complexes aussi précisément qu'avec des regexp ?


Message édité par Jubijub le 08-04-2004 à 00:55:06

---------------
Jubi Photos : Flickr - 500px

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [Java] Regexp pour sortir un chemin sans le nom de fichier

 

Sujets relatifs
[JAVA] Variables statiques et tomcatInstaller java 1.4 sous windows
[Java] Créer un editeur de texte gérant la coloration syntaxiqueFormation Lycos et Java
[C++]Aide épuration de fichier texteMettre à jour une table depuis un fichier formaté CVS dans SQL SERVER
Valider un fichier xmlUpload de fichier (probleme résolu :D)
[C] problemes de lecture dans un fichier des noms de fichiers à ouvrir[Regexp]Exclure une chaine d'une expression
Plus de sujets relatifs à : [Java] Regexp pour sortir un chemin sans le nom de fichier


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR