Besoin d'aide avec le javascript

  • mindfullsilence
  • Professor
  • Professor
  • Avatar de l’utilisateur
  • Inscription: Aoû 04, 2008
  • Messages: 846
  • Status: Offline

Message Mars 11th, 2011, 4:58 pm

J'ai plusieurs centaines d'entrées dans un fichier csv. Im leur exécution au moyen d'un RE pour que les entrées sont jumelés en 2 pour chaque ligne. Im ayant une lof de mal avec l'expression régulière pour ce faire.

Les entrées sont comme suit:

Code: [ Select ]
ART 223 - Watercolor III,
"Concentrates on the advanced study of subject development, form, color, and theme in watercolor. Three credits.",
  1. ART 223 - Watercolor III,
  2. "Concentrates on the advanced study of subject development, form, color, and theme in watercolor. Three credits.",


Essentiellement, le modèle que pour aller en est la suivante:
  • La première entrée de la paire commence toujours avec 3-4 lettres majuscules suivies d'un espace, un tiret, un autre espace, puis n'importe quel nombre de mots, des chiffres ou des symboles à l'exception d'une virgule.
  • La première entrée se termine par une virgule suivie d'un retour chariot.
  • Deuxième entrée sera parfois Commençons par une citation, suivie d'une phrase contenant un certain nombre de mots, des chiffres ou des symboles, y compris des virgules.
  • Deuxième entrée sera parfois inclure un guillemet fermant à la fin de l'entrée.
  • Deuxième entrée se termine par une virgule suivie d'un retour chariot.
Le résultat que je veux avoir après un remplacement devrait ressembler à ceci:
Code: [ Select ]
ART 223 - Watercolor III,"Concentrates on the advanced study of subject development, form, color, and theme in watercolor. Three credits.",

Essentiellement, le modèle résultant suivra les règles suivantes:
  • Enlève le retour chariot se terminant sur la première entrée.
  • Assure une citation au début de la deuxième entrée.
  • Assure une citation à la fin de la deuxième entrée.
  • Veiller à ce que la seconde entrée se termine par une virgule, suivie par un retour chariot.

heres ce que j'ai à ce jour, mais son obtenu assez en désordre, tout Ive été de jouer avec elle de sorte qu'il semble assez mauvais.

Code: [ Select ]
regexp match: ([a-zA-Z]{3,4}\s[0-9]{3,4}\s-\s[\sa-z$`A-Z0-9\/\\&\[\]\-\.\:\(\)]*\,)(\r)([\sa-zA-Z0-9\/\\&\[\]\-\.\:\",\(\)\'\;\,]*)
Regexp replace:
  1. regexp match: ([a-zA-Z]{3,4}\s[0-9]{3,4}\s-\s[\sa-z$`A-Z0-9\/\\&\[\]\-\.\:\(\)]*\,)(\r)([\sa-zA-Z0-9\/\\&\[\]\-\.\:\",\(\)\'\;\,]*)
  2. Regexp replace:

Toutes les idées?
Use your words like arrows to shoot toward your goal.
  • Anonymous
  • Bot
  • No Avatar
  • Inscription: 25 Feb 2008
  • Messages: ?
  • Loc: Ozzuland
  • Status: Online

Message Mars 11th, 2011, 4:58 pm

  • mindfullsilence
  • Professor
  • Professor
  • Avatar de l’utilisateur
  • Inscription: Aoû 04, 2008
  • Messages: 846
  • Status: Offline

Message Mars 11th, 2011, 8:22 pm

D'accord, j'ai compris cette partie.
Code: [ Select ]
find: ([A-Z]{3,4})(\s[0-9]{3,4})(\s-\s[\sa-zA-Z0-9\/\\&\[\]\-\.\:\(\)\']*)(\,)(\r)(\"*)([\sa-zA-Z0-9\/\\&\[\]\-\.:,\(\)';,]*)("*)(,)(\r|\n)
replace: "6","z","","","1"\r
  1. find: ([A-Z]{3,4})(\s[0-9]{3,4})(\s-\s[\sa-zA-Z0-9\/\\&\[\]\-\.\:\(\)\']*)(\,)(\r)(\"*)([\sa-zA-Z0-9\/\\&\[\]\-\.:,\(\)';,]*)("*)(,)(\r|\n)
  2. replace: "6","z","","","1"\r


de sortie:
Code: [ Select ]
"6","z","AAA 101 - College 101:Student Experience","Introduces students to college culture and prepares them for the challenges they will face in higher education. Through a series of interactive seminars, students discover learning in a multicultural environment and use college and community resources to attain education and career goals. One credit.","1"

C'est un peu différent de mon format nécessaire initial, mais les changements étaient nécessaires pour mettre en place pour un moteur d'analyse premade.

Ma question suivante:
J'ai besoin de changer "z" pour un certain nombre. Fondamentalement, une boucle sur chaque match et remplacer le "z" avec une valeur incrémentielle. Quelqu'un sait comment faire cela?
Use your words like arrows to shoot toward your goal.
  • mindfullsilence
  • Professor
  • Professor
  • Avatar de l’utilisateur
  • Inscription: Aoû 04, 2008
  • Messages: 846
  • Status: Offline

Message Mars 11th, 2011, 9:48 pm

D'accord, se rapproche...

Ive a obtenu le code suivant:
JAVASCRIPT Code: [ Select ]
var text = document.getElementById("text").innerHTML;
text = text.replace(/"z"/g, function(n){ return ++n });
document.write(text);
 
  1. var text = document.getElementById("text").innerHTML;
  2. text = text.replace(/"z"/g, function(n){ return ++n });
  3. document.write(text);
  4.  

Le problème est que je ne sais pas comment passer des valeurs par la fonction. Sérieux...cette journée a été tout projet non-stop de faire quelque chose qui était censé enregistrer me temps sur le projet réel. S'il vous plaît quelqu'un que Dieu m'aide.
Use your words like arrows to shoot toward your goal.
  • mindfullsilence
  • Professor
  • Professor
  • Avatar de l’utilisateur
  • Inscription: Aoû 04, 2008
  • Messages: 846
  • Status: Offline

Message Mars 12th, 2011, 2:59 pm

D'accord, il a obtenu. supprimer le paramètre dans la fonction. Ajouter une variable pour n . C'est certainement quelque chose que quelqu'un aurait pu répondre. Très simple et j'étais trop fatigué et pâteux-cerveau quand je l'ai posté. Cant crois que je n'ai pas eu une réponse de vous les gars pour quelque chose aussi facile. Je suppose que le forum vraiment est calme ces derniers temps.

Code: [ Select ]
var text = document.getElementById("text").innerHTML;
var n = 0;
text = text.replace(/"z"/g, function(){ return '"' + (++n) + '"' });
document.write(text);
  1. var text = document.getElementById("text").innerHTML;
  2. var n = 0;
  3. text = text.replace(/"z"/g, function(){ return '"' + (++n) + '"' });
  4. document.write(text);
Use your words like arrows to shoot toward your goal.
  • Bigwebmaster
  • Site Admin
  • Site Admin
  • Avatar de l’utilisateur
  • Inscription: Déc 20, 2002
  • Messages: 8926
  • Loc: Seattle, WA & Phoenix, AZ
  • Status: Offline

Message Mars 13th, 2011, 10:11 am

Je venais de passé par tout et vous déjà remarqué qu'il fixe. Oui les choses sont lentes ici, mais les gens continuent de lecture (au moins je lis tout). Na pas semble compliqué à résoudre. Ainsi, tout comme vous le voulez maintenant? Est-ce que vous puissiez tous les reformater votre fichier CSV? Utiliserez-vous ce que vous avez écrit souvent? La principale raison que je demande, c'est si j'étais à votre place, j'aurais probablement utilisé le moteur de regex dans Notepad + + pour faire tout cela plus rapidement beaucoup.
Ozzu Hosting - Want your website on a fast server like Ozzu?
  • mindfullsilence
  • Professor
  • Professor
  • Avatar de l’utilisateur
  • Inscription: Aoû 04, 2008
  • Messages: 846
  • Status: Offline

Message Mars 13th, 2011, 1:28 pm

C'est la façon dont je le veux, oui, c'était pour ma mise en csv, Ill probablement l'utiliser assez souvent. Je ne suis pas familier avec le moteur de regex dans notepad + +. J'étais à l'aide cet outil en ligne pour obtenir les lignes réorganisée, puis la fonction ci-dessus pour remplacer le z avec le nombre incrémenté. Est-notepad + + moteur de regex semblable à cela?
Use your words like arrows to shoot toward your goal.
  • Bigwebmaster
  • Site Admin
  • Site Admin
  • Avatar de l’utilisateur
  • Inscription: Déc 20, 2002
  • Messages: 8926
  • Loc: Seattle, WA & Phoenix, AZ
  • Status: Offline

Message Mars 13th, 2011, 2:56 pm

Oui très semblable, son tout basé sur les règles regex même. A l'intérieur Notepad + + j'ai l'habitude de Ctrl-R, qui ouvrira un "Rechercher / Remplacer" boîte. Avant que vous tapez dans votre regex à utiliser, assurez-vous que vous cochez les cases "Respecter la casse" et "Expr ordinaire" de sorte que vous pouvez utiliser votre regexes correctement.
Ozzu Hosting - Want your website on a fast server like Ozzu?

Afficher de l'information

  • Total des messages de ce sujet: 7 messages
  • Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 222 invités
  • Vous ne pouvez pas poster de nouveaux sujets
  • Vous ne pouvez pas répondre aux sujets
  • Vous ne pouvez pas éditer vos messages
  • Vous ne pouvez pas supprimer vos messages
  • Vous ne pouvez pas joindre des fichiers
 
 

© 2011 Unmelted, LLC. Ozzu® est une marque déposée de Unmelted, LLC