Hello
je développe un projet de réalisation d'un livre à partir des statut facebook des mes amis.
Pour ce faire je décompose avec processing le code html d'une page facebook et je construis un fichier xml contenant nom prénom statut et date.
Je suis sur un os actuellement,
je cherche à supprimer ce type d'élément :
: Une longues chaine de caractères se ressemblant à l'exception de 8 à 10 chiffres au centre.
Mes recherches pour résoudre se problème me permettent de sélectionner soit le début soit la fin de ces chaines mais impossible de sélectionner ces *$-!ùm de nombres.
Je pense qu'une chaine regEx pourrais me sauver la vie... mais je ce type de langage me reste à ce jour impénétrable.
Quelqu'un pourrait-il m'aider à composer cette chaine regEx me permettant de sélectionner ça?
Hors ligne
Hello,
Quelque chose dans ce goût là :
<a href=\"http://www.facebook\.com/profile\.php?id=(\d+)\" title=\"pour identifier quelqu’un, il vous suffit de taper @ avant son nom\.\">
Si uniquement les chiffres changent dans la chaîne, il y a 2 choses à faire : "échapper" les caractères qui pourraient être considérés comme des caractères spéciaux des regex (le point, le tiret, etc.) et identifier un bloc de chiffres de taille variable, ici c'est (\d+) qui s'en charge, ça signifie : chercher une suite de chiffres contenant au moins un chiffre.
Je n'ai pas souvent utilisé les regex avec processing, donc ce n'est pas garanti à 100%
Hors ligne
J'ai trouvé un site http://www.txt2re.com qui génère le code nécessaire pour une requête de type regEx.
ça à l'air plutôt bien foutu - - -
merci pour ta réponse elle m'éclaire bien pour l'écriture de ma requête
// URL that generated this code: // http://www.txt2re.com/ import java.util.regex.*; String [] linkOut(String [] file){ String re1="<a href=\"http:\\/\\/www\\.facebook\\.com\\/profile\\.php\\?id=(\\d+)\" title=\"pour identifier quelqu\'un, il vous suffit de taper @ avant son nom.\">"; Pattern p = Pattern.compile(re1,Pattern.CASE_INSENSITIVE | Pattern.DOTALL); for(int i=0 ; i< file.length;i++){ Matcher m = p.matcher(file[i]); if (m.find()){ String httpurl1=m.group(1); if(httpurl1.length()==9||httpurl1.length()==10){ String[] temp = split (file[i], httpurl1); int n=temp.length; file[i]=""; for(int j=0;j<n;j++){ file[i]+=temp[j]; } } } } return file; } //----- // This code is for use with Sun's Java VM - see http://java.sun.com/ for downloads. // // Paste the code into a new java application or a file called 'Main.java' // // Compile and run in Unix using: // # javac Main.java // # java Main //
Dernière modification par ogre (2009-11-21 12:22:58)
Hors ligne