Heim  >  Artikel  >  Backend-Entwicklung  >  So verwenden Sie reguläre Ausdrücke, um chinesische Zeichen in PHP abzugleichen

So verwenden Sie reguläre Ausdrücke, um chinesische Zeichen in PHP abzugleichen

王林
王林Original
2023-06-22 09:16:393581Durchsuche

In PHP ist der reguläre Ausdruck ein häufig verwendetes Tool zum Abgleich von Zeichenfolgen. Mit ihm kann festgestellt werden, ob eine Zeichenfolge einem bestimmten Format entspricht, und so die Gültigkeit des Eingabewerts überprüft werden. Da bei der Verarbeitung chinesischer Zeichen chinesische und englische Zeichen unterschiedlich codiert werden, müssen die Abgleichsregeln des regulären Ausdrucks entsprechend angepasst werden. In diesem Artikel wird erläutert, wie Sie reguläre Ausdrücke verwenden, um chinesische Zeichen in PHP abzugleichen.

1. Chinesische Zeichenkodierung verstehen

Die in PHP häufig verwendeten Zeichenkodierungen sind UTF-8 und GBK. UTF-8 ist eine „Codierung mit variabler Länge“, d. h. unterschiedliche Zeichen haben unterschiedliche Längen und 1 bis 4 Bytes werden zur Darstellung unterschiedlicher Zeichen verwendet. GBK ist eine „Kodierung fester Länge“, bei der jedes Zeichen durch zwei Bytes dargestellt wird.

Aufgrund der komplexen UTF-8-Codierungsregeln können wir beim Abgleich chinesischer Zeichen die GBK-Codierung zum Abgleich verwenden. In PHP können Sie eine Zeichenfolge mit der Funktion mb_convert_encoding() von der UTF-8- in die GBK-Kodierung konvertieren, zum Beispiel:

$str = "中文";
$str_gbk = mb_convert_encoding($str, "GBK", "UTF-8");

2. Chinesische Zeichen abgleichen

  1. Ein einzelnes chinesisches Zeichen abgleichen

Um ein einzelnes chinesisches Zeichen abzugleichen , können Sie einen regulären Ausdruck für [x{4e00}-x{9fa5}] verwenden. Wobei x ein hexadezimales Zeichen darstellt, stellen {4e00} und {9fa5} das erste und letzte Zeichen im chinesischen Zeichensatz dar, nämlich „一“ bzw. „饥“.

Codebeispiel:

$str = "中文";
$str_gbk = mb_convert_encoding($str, "GBK", "UTF-8");
preg_match("/[x{4e00}-x{9fa5}]/u", $str_gbk, $match);
echo $match[0];

Das Ausgabeergebnis lautet:

  1. Mehrere chinesische Zeichen abgleichen

Um mehrere chinesische Zeichen abzugleichen, können Sie dem regulären Ausdruck Quantifizierer hinzufügen, z. B. *, um eine beliebige Anzahl chinesischer Zeichen abzugleichen. + bedeutet, dass mindestens ein chinesisches Zeichen übereinstimmt, {n,m} bedeutet, dass n bis m chinesische Zeichen übereinstimmen.

Codebeispiel:

$str = "中文编程真有意思";
$str_gbk = mb_convert_encoding($str, "GBK", "UTF-8");
preg_match("/[x{4e00}-x{9fa5}]{2,}/u", $str_gbk, $match);
echo $match[0];

Das Ausgabeergebnis ist:

中文编程真有意思
  1. Chinesische Zeichen und andere Zeichen abgleichen

Um gleichzeitig chinesische Zeichen und andere Zeichen in einer Zeichenfolge abzugleichen, können Sie [x{4e00}- x{9fa5 }] und [w] (entsprechen einem beliebigen Zeichen oder einer beliebigen Zahl), um die Zeichenfolge abzugleichen, zum Beispiel:

Codebeispiel:

$str = "中文AI编程真有意思123";
$str_gbk = mb_convert_encoding($str, "GBK", "UTF-8");
preg_match("/[x{4e00}-x{9fa5}w]+/u", $str_gbk, $match);
echo $match[0];

Das Ausgabeergebnis ist:

中文AI编程真有意思123

3. Häufig verwendete reguläre Ausdrucksfunktionen

  1. preg_match() Die Funktion

preg_match() wird verwendet, um einen regulären Ausdrucksabgleich für Zeichenfolgen durchzuführen und gibt das Übereinstimmungsergebnis oder FALSE zurück.

Syntax: preg_match(string $pattern, string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0]]])

Beispielcode:

$str = "中文编程真有意思";
$str_gbk = mb_convert_encoding($str, "GBK", "UTF-8");
preg_match("/[x{4e00}-x{9fa5}]+/u", $str_gbk, $match);
echo $match[0];

Das Ausgabeergebnis ist:

中文编程真有意思
  1. preg_match_all()

Die Funktion preg_match_all() wird verwendet, um alle übereinstimmenden Ergebnisse zu finden, die dem regulären Ausdruck in der Zeichenfolge entsprechen, und ein Array zurückzugeben, das aus allen übereinstimmenden Ergebnissen besteht.

Syntax: preg_match_all(string $pattern, string $subject [, array &$matches [, int $flags = PREG_PATTERN_ORDER [, int $offset = 0]]])

Beispielcode:

$str = "PHP是一门非常有用的编程语言,可以用来开发各种Web应用";
$str_gbk = mb_convert_encoding($str, "GBK", "UTF-8");
preg_match_all("/[x{4e00}-x{9fa5}]+/u", $str_gbk, $match);
print_r($match[0]);

Das Ausgabeergebnis ist:

Array
(
    [0] => PHP是一门非常有用的编程语言
    [1] => 可以用来开发各种Web应用
)
  1. preg_replace()

preg_replace()-Funktion wird zum Suchen und Ersetzen von Zeichenfolgen mithilfe eines regulären Ausdrucks verwendet.

Syntax: preg_replace(mixed $pattern, Mixed $replacement, Mixed $subject [, int $limit = -1 [, int &$count]])

Beispielcode:

$str = "我爱编程,编程使我快乐!";
$str_gbk = mb_convert_encoding($str, "GBK", "UTF-8");
$new_str_gbk = preg_replace("/[x{4e00}-x{9fa5}]+/", "", $str_gbk);
$new_str = mb_convert_encoding($new_str_gbk, "UTF-8", "GBK");
echo $new_str;

Das Ausgabeergebnis ist:

,使我快乐!

Viertens: Zusammenfassung

Oben erfahren Sie, wie Sie reguläre Ausdrücke verwenden, um chinesische Zeichen in PHP abzugleichen. Mit regulären Ausdrücken können Sie die Gültigkeit von Eingabewerten überprüfen. Bei der Verwendung müssen Sie auf die Codierungsmethode chinesischer Zeichen achten und bei Bedarf die entsprechende reguläre Ausdrucksfunktion zur Verwendung auswählen.

Das obige ist der detaillierte Inhalt vonSo verwenden Sie reguläre Ausdrücke, um chinesische Zeichen in PHP abzugleichen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn