Heim > Backend-Entwicklung > PHP-Tutorial > PHP gibt die Länge des Strings zurück, der nicht mit der Maske übereinstimmt

PHP gibt die Länge des Strings zurück, der nicht mit der Maske übereinstimmt

王林
Freigeben: 2024-03-21 13:04:02
nach vorne
989 Leute haben es durchsucht

PHP-Redakteur Banana wies darauf hin, dass wir manchmal Zeichen, die nicht einer bestimmten Maske entsprechen, aus einer Zeichenfolge entfernen müssen, was die Verwendung einiger Funktionen in PHP erfordert. In diesem Artikel wird erläutert, wie Sie mithilfe von PHP-Funktionen die Teile der Zeichenfolge herausfiltern, die nicht mit der Maske übereinstimmen, und deren Länge berechnen. Werfen wir einen Blick auf die konkrete Implementierungsmethode!

PHP gibt die Länge der Zeichenfolge zurück, die nicht mit Mask

übereinstimmt

In php können Sie die Funktion preg_match() verwenden, um Teile einer Zeichenfolge abzugleichen, die einem bestimmten Muster (Maske) entsprechen. Um die Länge einer Zeichenfolge zurückzugeben, die nicht mit der Maske übereinstimmt, führen Sie die folgenden Schritte aus:

  1. Verwenden Sie preg_match(), um eine Zeichenfolge abzugleichen: Die preg_match() 函数将尝试将给定字符串与正则表达式模式进行匹配。如果找到匹配,它将返回 1 并将捕获的组存储在 $matches-Funktion versucht, die angegebene Zeichenfolge mit einem regulären Ausdruck-Muster abzugleichen. Wenn eine Übereinstimmung gefunden wird, wird 1 zurückgegeben und die erfasste Gruppe im
  2. Array
$matches gespeichert.
  1. $mask = "/[a-z]+/"; // 匹配小写字母的正则表达式
    preg_match($mask, $string, $matches);
    Nach dem Login kopieren
    preg_match() 返回 0,则表示没有找到匹配。此时,整个字符串都不符合 mask。您可以使用 strlen()Überprüfen Sie, ob das Match fehlgeschlagen ist:
  2. Wenn
0 zurückgibt, bedeutet dies, dass keine Übereinstimmung gefunden wurde. Zu diesem Zeitpunkt stimmt die gesamte Zeichenfolge nicht mit der Maske überein. Sie können die Länge einer Zeichenfolge mit der Funktion strlen() ermitteln:
  1. if (preg_match($mask, $string, $matches) == 0) {
    $length = strlen($string);
    }
    Nach dem Login kopieren
    preg_match() 找到匹配,则 $matches[0] 将包含与整个 mask 匹配的字符串。您可以使用 strlen()Ermitteln Sie die Länge der passenden Gruppe:
  2. Wenn
eine Übereinstimmung gefunden wird, enthält $matches[0] die Zeichenfolge, die mit der gesamten Maske übereinstimmt. Sie können seine Länge mit der Funktion strlen() ermitteln:
  1. if (preg_match($mask, $string, $matches) > 0) {
    $length = strlen($matches[0]);
    }
    Nach dem Login kopieren
  2. Berechnen Sie die Länge der Zeichenfolgen, die nicht mit der Maske übereinstimmen:
Subtrahieren Sie die Länge des passenden Teils von der Gesamtlänge der Zeichenfolge, um die Länge der Zeichenfolge zu erhalten, die nicht mit der Maske übereinstimmt:

$non_matching_length = strlen($string) - $length;
Nach dem Login kopieren

Schließlich implementiert der folgende Code die oben genannten Schritte:

function getNonMatchingLength($string, $mask) {
if (preg_match($mask, $string, $matches) == 0) {
return strlen($string);
} elseif (preg_match($mask, $string, $matches) > 0) {
$matching_length = strlen($matches[0]);
$non_matching_length = strlen($string) - $matching_length;
return $non_matching_length;
} else {
return 0;
}
}

$string = "This is a string with non-numeric characters.";
$mask = "/[0-9]+/"; // 匹配数字的正则表达式
$non_matching_length = getNonMatchingLength($string, $mask);

echo "Length of the non-matching part: $non_matching_length";
Nach dem Login kopieren
🎜Ausgabe: 🎜
Length of the non-matching part: 41
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonPHP gibt die Länge des Strings zurück, der nicht mit der Maske übereinstimmt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:lsjlt.com
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage