ForHosting KIT · Texte et IA

Supprimer les lignes correspondant à une regex

Filtrez les lignes par motif : avec ^DEBUG\b, un journal de cinq lignes perd ses 2 lignes DEBUG et garde intactes les 3 lignes INFO et ERROR. Vous voyez aussi combien de lignes ont été retirées et conservées. Gratuit dans votre navigateur.

  • Gratuit
  • Fonctionne dans votre navigateur
  • Sans inscription
  • Vos données restent sur votre appareil
Utilisez-le depuis WebAPIE-mailTelegramApp bientôt
Si vous saisissez
Motif
^DEBUG\b
Vous obtenez
Texte
INFO Server started ERROR Connection lost INFO Server ready
Nombre supprimé
2
Nombre conservé
3

Supprimer les lignes correspondant à une regex filtre un texte multiligne en testant chaque ligne séparément avec une expression régulière, puis en écartant toutes les correspondances. Cet outil convient lorsque les lignes à retirer partagent un motif : niveau de journal, commentaire généré, horodatage, préfixe d’identifiant ou type d’enregistrement structuré. Le résultat conserve à l’identique chaque ligne restante, y compris sa terminaison d’origine, et indique le nombre de lignes supprimées et gardées afin que vos traitements automatisés puissent contrôler la modification.

Rédigez un motif pour la ligne que vous souhaitez supprimer

Placez le texte source dans text et une expression régulière JavaScript dans pattern. Saisissez l’expression sans barres obliques de délimitation : utilisez par exemple <code>^DEBUG\b</code>, et non <code>/^DEBUG\b/</code>. Chaque ligne est contrôlée séparément et supprimée dès qu’une de ses parties correspond.

Ajoutez <code>^</code> si le texte recherché doit se trouver au début, <code>$</code> s’il doit se trouver à la fin, et les deux si la ligne entière doit respecter la règle. Le motif <code>^\s*#</code> retire les lignes dont le premier caractère non blanc est un croisillon, tandis que <code>temporary$</code> retire celles qui se terminent par ce mot. La recherche distingue les majuscules des minuscules et emploie la syntaxe JavaScript standard.

Commencez par un motif précis, examinez les compteurs et le texte filtré, puis élargissez-le seulement si le résultat confirme la sélection attendue.

Maîtrisez le traitement des fins de ligne et des lignes vides

Le filtre reconnaît les sauts de ligne Unix, les couples retour chariot–saut de ligne Windows et les retours chariot isolés. Il conserve la terminaison d’origine attachée à chaque ligne restante : une entrée mixte ou propre à une plateforme n’est donc jamais normalisée en silence. L’expression régulière porte uniquement sur le contenu de la ligne ; les caractères de fin de ligne ne participent pas à la correspondance.

Une ligne vide est une véritable ligne et peut être supprimée avec <code>^$</code>. Si la source se termine par un saut, ce délimiteur reste attaché à la ligne précédente conservée, sauf si celle-ci est elle-même supprimée. Retirer la dernière ligne non terminée peut ainsi laisser intact le délimiteur précédent, conformément aux octets de la ligne gardée.

Une source vide compte comme une ligne vide. Aucun retrait d’espaces, changement de casse ou nettoyage des blancs n’est effectué.

Filtrez journaux, code et pipelines de façon déterministe

Cette capacité prépare efficacement des données avant comparaison, indexation, contrôle ou importation. Dans des journaux, vous pouvez retirer des contrôles d’état connus ou un préfixe de gravité trop fréquent avant de transmettre les événements utiles à un analyste. Dans du code généré, éliminez les commentaires d’en-tête stables avant de comparer des versions.

Dans une exportation structurée, retirez les enregistrements dont le préfixe désigne un en-tête, un pied ou une catégorie indésirable. Le même algorithme déterministe fonctionne sans réseau : une entrée identique produit toujours une sortie identique. L’expression est compilée une seule fois, mais les répétitions imbriquées ambiguës peuvent rester coûteuses.

Pour de grandes entrées, privilégiez des motifs précis et ancrés. Contrôlez le texte renvoyé et utilisez les compteurs comme garde-fou ; arrêtez par exemple un déploiement si un nettoyage censé retirer une ligne en signale des centaines.

Éliminer le bruit des journaux

Écartez les lignes récurrentes de débogage, de contrôle d’état ou de surveillance tout en gardant les événements à examiner.

Nettoyer du code source généré

Retirez commentaires d’en-tête, marqueurs de générateur ou lignes propres à un environnement avant d’étudier les différences utiles.

Filtrer des enregistrements par ligne

Excluez en-têtes, pieds, commentaires ou préfixes indésirables d’une exportation avant l’étape suivante.

Quelle syntaxe d’expression régulière est acceptée ?

La syntaxe des expressions régulières JavaScript est utilisée. Saisissez le motif sans barres de délimitation.

Le motif inclut-il le caractère de saut de ligne ?

Non. Chaque expression porte sur le contenu d’une ligne et exclut sa terminaison.

Les lignes correspondantes deviennent-elles des lignes vides ?

Non. Les lignes trouvées et leurs terminaisons sont retirées ; les autres restent inchangées.

Peut-on supprimer les lignes vides ou composées d’espaces ?

Oui. Employez ^$ pour une ligne vide ou ^\s*$ pour une ligne contenant uniquement des blancs.

Comment supprimer uniquement les lignes qui commencent par un mot ?

Placez ^ devant le mot, comme dans ^DEBUG. Sans ce signe, toute ligne qui contient le mot à n'importe quelle position est supprimée. La comparaison distingue les majuscules des minuscules : DEBUG et debug sont différents.

Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.

POSThttps://api.kit.forhosting.com/str/remove-lines-matching

Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.

curl -X POST https://api.kit.forhosting.com/str/remove-lines-matching \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"INFO Server started\nDEBUG Cache miss\nERROR Connection lost\nDEBUG Retrying\nINFO Server ready","pattern":"^DEBUG\\b"}'
{
  "text": "INFO Server started\nDEBUG Cache miss\nERROR Connection lost\nDEBUG Retrying\nINFO Server ready",
  "pattern": "^DEBUG\\b"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "str.remove_lines_matching",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.

par requête$0.002

Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.

HTTPCodeSignification
401unauthorizedClé API absente ou invalide : vérifiez l’en-tête Authorization.
402insufficient_balanceSolde insuffisant : rechargez votre compte pour lancer cette tâche.
404unknown_typeType de tâche inconnu : vérifiez le champ type de votre requête.
429rate_limitedTrop de requêtes : ralentissez la cadence, puis réessayez.

Rédigez un motif pour la ligne que vous souhaitez supprimer

Dans JSON, les échappements suivent les règles habituelles : une barre oblique inverse est donc doublée dans une requête JSON brute.

Maîtrisez le traitement des fins de ligne et des lignes vides

La réponse fournit removed_count et kept_count, ce qui permet à un script de refuser une modification trop large.

Filtrez journaux, code et pipelines de façon déterministe

Une syntaxe incorrecte est rejetée avec <code>invalid_input</code> au lieu de livrer un texte partiellement filtré. Chaque requête API coûte $0.002 ; la version navigateur s’exécute localement.

Que se passe-t-il si le motif est incorrect ?

La requête échoue avec une erreur invalid_input qui signale une expression régulière incorrecte.

Quel est le prix d’une requête API ?

Chaque requête API coûte $0.002. Le filtrage interactif est également proposé dans le navigateur.

Consulter la documentation complète du KIT →