2012-05-03 3 views
1

Dans un fichier texte séparé par des tubes, je dois découper la première colonne à 180 caractères maximum.REGEX pour couper une chaîne après 180 caractères et avant |

S'il y a moins de 180 caractères, je garderai tout ce qui est là.

Maintenant la partie laide ... J'essaie de le faire dans Notepad ++ ce qui signifie que je peux utiliser find/replace avec regex mais pas de code réel. Je ne sais pas comment faire une regex "Si vous frappez un tuyau avant 180, vous n'avez pas besoin de couper quoi que ce soit."

+2

Je n'ai pas accès à Notepad ++, mais dans la plupart des variations regex, '[^ |] {0180}' correspondront 0 à 180 caractères non-pipe. –

Répondre

2

Vous pouvez utiliser cette regex:

^([^|]{0,180})[^|]+(.*)$ 

et ce que le remplacerons:

\1\2 

Voici une capture d'écran de la dialogue Rechercher/Remplacer dans Notepad ++:

Notepad++ regex

Je l'ai testé avec cette donnée fictive:

http://pastie.org/3855302

Et il a donné lieu à cette sortie:

http://pastie.org/3855308

+0

Apparaît Notepad ne joue pas bien avec votre recommandation pour une raison quelconque. J'apprécie votre suggestion si! – Korak

+0

@Korak J'ai téléchargé et installé Notepad ++ et l'ai testé, et cela fonctionne parfaitement. Pouvez-vous donner des exemples de données sur lesquelles vous travaillez? – LeonardChallis

+0

@Korak J'ai édité la réponse pour la montrer fonctionnant pour moi dans Notepad ++, y compris la capture d'écran pour la comparer à votre propre – LeonardChallis

Questions connexes