2011-04-03 4 views
2

Je rencontre des problèmes lors du remplacement d'une chaîne dans Notepad ++ et j'ai besoin d'aide.Bloc-notes ++ Rechercher/Remplacer l'aide sur Regex

Mon fichier:

LastName,(tab)FirstName[optional]MiddleName 

Quelques fois il y a des données qui a un prénom, parfois pas.

Public,JohnQ. 
Doe,John 
Clinton,WilliamJefferson 

serait:

Public(tab)John(tab)Q 
Doe(tab)John 
Clinton(tab)William(tab)Jefferson 

Je veux diviser dehors dans ceci:

LastName(tab)FirstName(tab)MiddleName 
+0

Est-ce que [facultatif] est réellement le mot facultatif entre crochets ou cela signifie-t-il quelque chose d'autre? – BoltClock

+0

Non, cela signifie parfois qu'il y a un Middlename (qui commence par une majuscule) – andyhky

+0

Est-ce que ça doit être dans une regex? –

Répondre

4

Merci d'avoir ajouté l'entrée d'échantillon. Cela aide énormément à avoir cela autour. Essayez ceci et voyez s'il fait ce que vous voulez.

Rechercher, en vous assurant Respecter la casse est vérifié:

([A-Z][a-z]*),([A-Z][a-z]*)(.*) 

Remplacer par:

\1(tab)\2(tab)\3 

Bien sûr, (tab) est en fait un caractère de tabulation que vous devez placer dans la chaîne de remplacement toi même.

0

Un regex laid comme cela fonctionne pour moi l'exemple que vous avez fourni:

(\w+),(\w+?)(([A-Z]\w*\.?)?)\n 

remplacer par

\1\t\2\t\3\n 

Note:

  • Cela ne fonctionne que si le prénom commence par une lettre dans la A-Z. Vous pourriez être en mesure de remplacer [A-Z] par [[:upper:]] si notepad ++ le prend en charge (je ne sais pas).
  • J'ai besoin de cette deuxième parenthèse autour de la partie du deuxième prénom parce que j'ai besoin de faire correspondre au moins une chaîne vide lorsqu'il n'y a pas de deuxième prénom.
+0

J'ai vérifié et trouvé Notepad ++ 5.9 support ajouté pour les assertions non-gourmandes, mais mis à jour et je ne peux toujours pas le faire fonctionner. Quels paramètres de recherche avez-vous choisis? – BoltClock

+0

Ce n'est pas? Je ne l'ai pas vraiment essayé directement dans Notepad ++, juste dans Rx Toolkit. Eh bien, si ce n'est pas le cas, votre regex est le chemin à parcourir! – Czechnology

+0

Oui, Notepad ++ a une implémentation regex horrible. Au moins vous m'avez fait mettre à jour (son auto-updater est tout aussi mauvais et ne m'a jamais parlé de 5.9). – BoltClock