Wie kann ich einen Teil einer Zeichenfolge entfernen?
Beispielzeichenfolge: "REGISTER 11223344 here"
Wie kann ich "11223344"
aus der obigen Beispielzeichenfolge entfernen ?
REGISTER here
in der Datenbank speichern wollen ?
Wie kann ich einen Teil einer Zeichenfolge entfernen?
Beispielzeichenfolge: "REGISTER 11223344 here"
Wie kann ich "11223344"
aus der obigen Beispielzeichenfolge entfernen ?
REGISTER here
in der Datenbank speichern wollen ?
Antworten:
Wenn Sie speziell auf "11223344" abzielen, verwenden Sie str_replace
:
// str_replace($search, $replace, $subject)
echo str_replace("11223344", "","REGISTER 11223344 here");
Sie können str_replace () verwenden , das wie folgt definiert ist:
str_replace($search, $replace, $subject)
Sie können den Code also wie folgt schreiben:
$subject = 'REGISTER 11223344 here' ;
$search = '11223344' ;
$trimmed = str_replace($search, '', $subject) ;
echo $trimmed ;
Wenn Sie eine bessere Übereinstimmung über reguläre Ausdrücke benötigen, können Sie preg_replace () verwenden .
Angenommen, 11223344 ist nicht konstant
$string="REGISTER 11223344 here";
$s = explode(" ",$string);
unset($s[1]);
$s = implode(" ",$s);
print "$s\n";
str_replace(find, replace, string, count)
Gemäß OP-Beispiel:
$Example_string = "REGISTER 11223344 here";
$Example_string_PART_REMOVED = str_replace('11223344', '', $Example_string);
// will leave you with "REGISTER here"
// finally - clean up potential double spaces, beginning spaces or end spaces that may have resulted from removing the unwanted string
$Example_string_COMPLETED = trim(str_replace(' ', ' ', $Example_string_PART_REMOVED));
// trim() will remove any potential leading and trailing spaces - the additional 'str_replace()' will remove any potential double spaces
// will leave you with "REGISTER here"
Wenn Sie einen regelbasierten Abgleich benötigen, müssen Sie Regex verwenden
$string = "REGISTER 11223344 here";
preg_match("/(\d+)/", $string, $match);
$number = $match[1];
Dies entspricht dem ersten Satz von Zahlen. Wenn Sie also genauer sein müssen, versuchen Sie Folgendes:
$string = "REGISTER 11223344 here";
preg_match("/REGISTER (\d+) here/", $string, $match);
$number = $match[1];
$match
Array unnötig aufgebläht . Entfernen Sie die Klammern und greifen Sie über zu $match[0]
.
substr () ist eine integrierte PHP-Funktion, die einen Teil eines Strings zurückgibt. Die Funktion substr () verwendet eine Zeichenfolge als Eingabe, die Indexform, in der die Zeichenfolge abgeschnitten werden soll. und ein optionaler Parameter ist die Länge des Teilstrings. Die richtige Dokumentation und den Beispielcode finden Sie unter http://php.net/manual/en/function.substr.php
HINWEIS: Der Index für eine Zeichenfolge beginnt mit 0.
Verwenden Sie diese Funktion dynamisch, wenn Sie (a) Teile aus (a) festen Indizes einer Zeichenfolge entfernen möchten:
/**
* Removes index/indexes from a string, using a delimiter.
*
* @param string $string
* @param int|int[] $index An index, or a list of indexes to be removed from string.
* @param string $delimiter
* @return string
* @todo Note: For PHP versions lower than 7.0, remove scalar type hints (i.e. the
* types before each argument) and the return type.
*/
function removeFromString(string $string, $index, string $delimiter = " "): string
{
$stringParts = explode($delimiter, $string);
// Remove indexes from string parts
if (is_array($index)) {
foreach ($index as $i) {
unset($stringParts[(int)($i)]);
}
} else {
unset($stringParts[(int)($index)]);
}
// Join all parts together and return it
return implode($delimiter, $stringParts);
}
Für Ihren Zweck:
remove_from_str("REGISTER 11223344 here", 1); // Output: REGISTER here
Eine seiner Anwendungen besteht darin, befehlsähnliche Zeichenfolgen auszuführen, deren Strukturen Sie kennen.
Das folgende Snippet gibt "REGISTRIEREN hier" aus.
$string = "REGISTER 11223344 here";
$result = preg_replace(
array('/(\d+)/'),
array(''),
$string
);
print_r($result);
Die API preg_replace () verwendet uns wie unten angegeben.
$result = preg_replace(
array('/pattern1/', '/pattern2/'),
array('replace1', 'replace2'),
$input_string
);
preg_replace()
In diesem Fall gibt es absolut keinen Grund, Arrays zu übergeben . Die Verwendung einer Erfassungsgruppe hat auch keinen Vorteil.
Mach Folgendes
$string = 'REGISTER 11223344 here';
$content = preg_replace('/REGISTER(.*)here/','',$string);
Dies würde "REGISTERhere" zurückgeben.
oder
$string = 'REGISTER 11223344 here';
$content = preg_replace('/REGISTER (.*) here/','',$string);
Dies würde "REGISTRIEREN hier" zurückgeben.
remove
, aber es ist wahrscheinlich, dass Sie damit meinenextract
, dass die Zielzeichenfolge in der Datenbank gespeichert werden kann.