1
votes

Raccourcir un bloc de texte

Cela devrait être très simple, mais je suis novice dans ce domaine. Disons que j'ai affaire à un bloc de texte de plus de 300 caractères.

Je veux une chaîne d'expression régulière qui trouvera tous les caractères APRÈS les 200 premiers caractères, jusqu'à la fin ($).

Je souhaite supprimer tout ce qui dépasse les 200 premiers caractères. Je dépose ces données dans une feuille de calcul et je n'ai pas besoin de TOUT.

==== update =====

Désolé les gars, soyons très précis. Je n'utilise pas vraiment un langage de programmation. (Je suis dans l'application Ubot) Imaginez que vous avez plus de 300 blocs de texte sur une page dans Textpad. Vous appuyez sur F8 et effectuez un REMPLACEMENT. Je coche la case EXPRESSION RÉGULIÈRE.

Quelle serait l'expression régulière que j'utiliserais pour TROUVER les 200 premiers caractères, puis REMPLACER le reste par RIEN. (c'est-à-dire supprimer)


6 commentaires

Voulez-vous ou non les 200 premiers caractères?


Vous souhaitez donc sélectionner les 200 premiers caractères. ^. {200} Mais avez-vous besoin d'une expression régulière pour cela ou pouvez-vous le faire également dans le code?


Je recommanderais de jouer avec cela pour voir si cela fonctionne pour vous. regexr.com/4elge


Voulez-vous faire correspondre le caractère APRÈS les 200 premiers pour les supprimer ou ceux AVANT de les conserver?


Dans quelle langue est le programme? Il existe généralement une fonction simple dans la plupart des langages informatiques pour obtenir une sous-chaîne à partir d'une chaîne.


Je pense que c'est pourquoi je vous fous les gars - je n'utilise pas un langage standard, plus comme Textpad. (voir au dessus)


4 Réponses :


0
votes

Je veux une chaîne d'expression régulière qui trouvera tous les caractères APRÈS les 200 premiers caractères, jusqu'à la fin ($).

Cette expression régulière correspond à tout sauf les 200 premiers caractères:

^[\s\S]{200}

Si votre moteur d'expression régulière prend en charge \ K , vous pouvez également faire: p>

^[\s\S]{200}\K[\s\S]*$

Je souhaite supprimer tout ce qui dépasse les 200 premiers caractères

Il semble que vous vouliez simplement faire correspondre les 200 premiers caractères, ce qui peut être fait avec cette expression régulière:

(?<=^[\s\S]{200})[\s\S]*$

0 commentaires

0
votes

Vos deuxième et troisième paragraphes sont en quelque sorte contradictoires. Essayez ce fork de @ RugerSR9 qui sélectionne jusqu'à 200 caractères (votre entrée peut être inférieure à cela, et je suppose vous le voulez toujours).

^.{0,200}

Vous voudrez peut-être regarder autre chose qu'une expression régulière, par exemple, dans le pseudo-code, string.Left (200) .


1 commentaires

OK, dans Textpad (voir ci-dessus) ^. {0,25} sélectionne les 25 premiers caractères. Maintenant, je dois sélectionner le contraire jusqu'à la fin ($).



0
votes

Ancienne question, mais je ne vois aucune réponse spécifique à la question OP et cela pourrait aider d'autres personnes à l'avenir. Assurez-vous que Utiliser la syntaxe d'expression régulière POSIX est désactivé dans les préférences.

Rechercher:

^\(.\{0,200\}\).*$

Et remplacer par:

\1

Explication, ceci ( ^ \ (. \ {0,200 \} \) ) correspondra aux 200 premiers caractères du début de la ligne et les placera dans le groupe \ 1 < / code>. Le reste (. * $ correspondra au reste des caractères de la ligne jusqu'à la fin. L'expression de remplacement remplace la ligne entière par le groupe \ 1 correspondant .

Bonus si vous en avez beaucoup besoin. Enregistrez-le sous forme de macro, puis réduisez vos fichiers en quelques clics de souris.


0 commentaires

0
votes

Pour cela, j'utilise le mode bloc dans textpad - il n'est pas nécessaire d'utiliser regex.


0 commentaires