Funktion preg_filter
Die Funktion preg_filter führt eine Suche und Ersetzung in einer Zeichenkette oder einem Array von Zeichenketten mit einem regulären Ausdruck durch. Im Gegensatz zu preg_replace gibt sie nur die Elemente zurück, in denen eine Übereinstimmung gefunden wurde. Der erste Parameter akzeptiert den regulären Ausdruck, der zweite die Ersatzzeichenkette, der dritte die zu verarbeitende Zeichenkette oder das Array.
Im vierten optionalen Parameter kann die maximale Anzahl von Ersetzungen in jedem Element festgelegt werden (standardmäßig -1, was "ohne Einschränkungen" bedeutet).
Im fünften optionalen Parameter wird die Variable angegeben, in der die Anzahl der durchgeführten Ersetzungen gespeichert wird.
Syntax
preg_filter(pattern, replacement, subject, [limit = -1], [count]);
Beispiel
Ersetzen wir alle Ziffern in der Zeichenkette durch das Zeichen 'X':
<?php
$res = preg_filter('/\d/', 'X', 'a1b2c3');
var_dump($res);
?>
Ergebnis der Codeausführung:
'aXbXcX'
Beispiel
Lassen Sie uns ein Array von Zeichenketten verarbeiten und Ziffern durch '#' ersetzen:
<?php
$res = preg_filter('/\d/', '#', ['a1', 'b2', 'c', 'd4']);
var_dump($res);
?>
Ergebnis der Codeausführung:
['a#', 'b#', 'd#']
Beispiel
Demonstrieren wir den Unterschied zu preg_replace:
<?php
$input = ['a1', 'b2', 'c', 'd4'];
$res_filter = preg_filter('/\d/', '#', $input);
$res_replace = preg_replace('/\d/', '#', $input);
echo "Filter result: ";
var_dump($res_filter);
echo "Replace result: ";
var_dump($res_replace);
?>
Ergebnis der Codeausführung:
Filter result: ['a#', 'b#', 'd#']
Replace result: ['a#', 'b#', 'c', 'd#']
Siehe auch
-
die Funktion
preg_replace,
die eine Ersetzung mit einem regulären Ausdruck durchführt -
die Funktion
preg_match,
die auf Übereinstimmung mit einem regulären Ausdruck prüft