🛠️ToolsShed

Text-Bereiniger

Entfernen Sie überflüssige Leerzeichen, Leerzeilen, Sonderzeichen und HTML-Tags aus Text.

Der Textbereiniger entfernt unerwünschte Formatierungen, überflüssige Leerzeichen und häufige Störungen aus Text mit einem einzigen Klick. Wenn Sie Text aus PDFs, Word-Dokumenten, Webseiten oder E-Mails kopieren, enthält das Ergebnis oft zusätzliche Zeilenumbrüche, mehrere aufeinanderfolgende Leerzeichen, unsichtbare Unicode-Zeichen oder HTML-Entities wie & und  .

Wählen Sie die benötigten Bereinigungsoperationen und klicken Sie auf Bereinigen. Verfügbare Operationen umfassen: Entfernen von überschüssigen Leerzeichen und Leerzeilen, Trimmen von führenden und nachfolgenden Leerzeichen, Zusammenfassen mehrerer Leerzeichen zu einem, Konvertieren typografischer Anführungszeichen in gerade Anführungszeichen, Entfernen von HTML-Tags, Dekodieren von HTML-Entities und Entfernen nicht druckbarer Zeichen.

Textbereinigung ist ein häufiger erster Schritt in Datenverarbeitungs-Pipelines. Beim Importieren von Textdaten in Datenbanken, Machine-Learning-Modelle oder APIs sind unerwartete Leerzeichen und Sonderzeichen eine häufige Quelle von Parsing-Fehlern.

Häufig gestellte Fragen

Code-Implementierung

import re
import unicodedata

def remove_control_chars(text: str) -> str:
    """Remove non-printable control characters (keep tab, newline, carriage return)."""
    return "".join(
        ch for ch in text
        if unicodedata.category(ch) not in ("Cc", "Cf") or ch in ("\t", "\n", "\r")
    )

def normalize_line_endings(text: str, style: str = "lf") -> str:
    """Normalize line endings to LF (Unix) or CRLF (Windows)."""
    text = text.replace("\r\n", "\n").replace("\r", "\n")
    if style == "crlf":
        text = text.replace("\n", "\r\n")
    return text

def collapse_whitespace(text: str) -> str:
    """Replace multiple consecutive spaces/tabs on each line with a single space."""
    return "\n".join(re.sub(r"[ \t]+", " ", line) for line in text.splitlines())

def trim_lines(text: str) -> str:
    """Strip leading and trailing whitespace from each line."""
    return "\n".join(line.strip() for line in text.splitlines())

def remove_blank_lines(text: str) -> str:
    """Collapse multiple consecutive blank lines into one."""
    return re.sub(r"\n{3,}", "\n\n", text)

def clean_text(text: str,
               control_chars: bool = True,
               normalize_endings: bool = True,
               collapse_spaces: bool = True,
               trim: bool = True,
               blank_lines: bool = True) -> str:
    """Run all cleaning steps in sequence."""
    if control_chars:
        text = remove_control_chars(text)
    if normalize_endings:
        text = normalize_line_endings(text)
    if collapse_spaces:
        text = collapse_whitespace(text)
    if trim:
        text = trim_lines(text)
    if blank_lines:
        text = remove_blank_lines(text)
    return text

sample = "  Hello\t  world!  \n\n\nExtra blank lines   \n\x00Null byte here  "
print(repr(clean_text(sample)))
# 'Hello world!\n\nExtra blank lines\nNull byte here'

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.