Aktueller Standort: Startseite> Neueste Artikel> Wie ersetzt ich verschiedene Interpunktionsmarken im chinesischen Text durch die Funktion mb_eregi_replace?

Wie ersetzt ich verschiedene Interpunktionsmarken im chinesischen Text durch die Funktion mb_eregi_replace?

M66 2025-06-15

Lassen Sie uns zunächst die grundlegende Syntax von mb_eregi_replace verstehen:

 string mb_eregi_replace ( string $pattern , string $replacement , string $string [, string $option = "msri" ] )

Diese Funktion ist durch Fall-unempfindliche reguläre Übereinstimmung und Austausch von Multi-Byte-Zeichenfolgen (wie UTF-8-codiertem Chinesisch) charakterisiert. Obwohl diese Funktion als verworfen markiert wurde, wird sie in einigen älteren Versionen oder in bestimmten Umgebungen immer noch weit verbreitet.

Ersetzen Sie die chinesischen Interpunktionsmarken

Unsere gemeinsamen chinesischen Interpunktionspunkte umfassen:

  • Vollbreite Komma (,)

  • Vollbreite Full Stop (.)

  • Schreien (,)

  • Vollbreite Semikolon (;)

  • Full-Width-Fragezeichen (?)

  • Ausrufezeichen Vollbreite (!)

  • Anführungszeichen Vollbreite ("" 『")

Diese Interpunktionsmarken müssen möglicherweise durch englische Interpunktion oder in verschiedenen Anwendungsszenarien entfernt werden. Beispielsweise ist eine einheitliche Interpunktion in der Vorverarbeitung, Inhaltsdeduplizierung oder Textnormalisierung sehr nützlich.

Beispielcode

Angenommen, wir möchten alle chinesischen Interpunktionsmarken in einem chinesischen Text durch die entsprechenden englischen Interpunktionszeichen ersetzen. Wir können mb_eregi_replace verwenden, um mit mehreren Ersatzschritten zusammenzuarbeiten, um diesen Vorgang abzuschließen.

 <?php

mb_internal_encoding("UTF-8");

$text = "Hallo,Welt!Dies ist ein Testtext,Einschließlich verschiedener chinesischer Zeichensetzungspunkte:Wie ein Komma、Zeitraum。außerdem“Anführungszeichen”、Fragezeichen?usw.。";

// Ersetzen Sie das Kartenarray
$replacements = [
    ',' => ',',
    '。' => '.',
    '、' => ',',
    ';' => ';',
    ':' => ':',
    '?' => '?',
    '!' => '!',
    '“' => '"',
    '”' => '"',
    '‘' => "'",
    '’' => "'",
    '(' => '(',
    ')' => ')',
    '【' => '[',
    '】' => ']',
    '《' => '<',
    '》' => '>'
];

foreach ($replacements as $chinese => $english) {
    $pattern = preg_quote($chinese, '/');
    $text = mb_eregi_replace($pattern, $english, $text);
}

echo $text;

?>

Ausgangsergebnis

 Hallo,Welt!Dies ist ein Testtext,Einschließlich verschiedener chinesischer Zeichensetzungspunkte:Wie ein Komma,Zeitraum.außerdem"Anführungszeichen",Fragezeichen?usw..

Auf diese Weise ersetzen wir die chinesischen Interpunktionsmarken in einem chinesischen Text erfolgreich durch englische Interpunktion, was für die anschließende Verarbeitung oder Anzeige bequem ist.

Tipps

  1. Obwohl MB_Eregi_Replace Multibyte -Zeichen verarbeiten kann, da es aufgegeben wurde, wird empfohlen, stattdessen mb_ereg_replace oder preg_replace (mit dem /u -Modifikator) zu verwenden.

  2. Wenn Sie große Mengen an Textdaten verarbeiten, kann die Verwendung von STRTR anstelle eines regelmäßigen Austauschs effizienter sein.

  3. Wenn Sie Interpunktion entfernen müssen, anstatt zu ersetzen, stellen Sie einfach $ englisch auf eine leere Zeichenfolge ein.

Online -Testvorschläge

Wenn Sie das Skript online debuggen möchten, können Sie es in einer Online-Umgebung für PHP-Laufzeit wie <Code> https://www.m66.net/php-runner </code> testen, um den tatsächlichen Effekt zu beobachten.

Durch die Verwendung von MB_Eregi_Replace vernünftigerweise können Sie die Standardisierung der Interpunktionsmarken im chinesischen Text problemlos vervollständigen und eine gute Grundlage für die Textdatenanalyse legen.