¿Cómo puedo eliminar parte de una cadena?
Cadena de ejemplo: "REGISTER 11223344 here"
¿Cómo puedo eliminar "11223344"
de la cadena de ejemplo anterior?
REGISTER here
en la base de datos?
¿Cómo puedo eliminar parte de una cadena?
Cadena de ejemplo: "REGISTER 11223344 here"
¿Cómo puedo eliminar "11223344"
de la cadena de ejemplo anterior?
REGISTER here
en la base de datos?
Respuestas:
Si está apuntando específicamente a "11223344", use str_replace
:
// str_replace($search, $replace, $subject)
echo str_replace("11223344", "","REGISTER 11223344 here");
Puede usar str_replace () , que se define como:
str_replace($search, $replace, $subject)
Entonces podrías escribir el código como:
$subject = 'REGISTER 11223344 here' ;
$search = '11223344' ;
$trimmed = str_replace($search, '', $subject) ;
echo $trimmed ;
Si necesita una mejor coincidencia a través de expresiones regulares, puede usar preg_replace () .
suponiendo que 11223344 no es constante
$string="REGISTER 11223344 here";
$s = explode(" ",$string);
unset($s[1]);
$s = implode(" ",$s);
print "$s\n";
str_replace(find, replace, string, count)
Según el ejemplo de OP:
$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"
Cuando necesite una coincidencia basada en reglas, debe usar expresiones regulares
$string = "REGISTER 11223344 here";
preg_match("/(\d+)/", $string, $match);
$number = $match[1];
Eso coincidirá con el primer conjunto de números, así que si necesita ser más específico, intente:
$string = "REGISTER 11223344 here";
preg_match("/REGISTER (\d+) here/", $string, $match);
$number = $match[1];
$match
matriz. Quite los paréntesis y luego acceda a través de $match[0]
.
substr () es una función php incorporada que devuelve parte de una cadena. La función substr () tomará una cadena como entrada, la forma de índice donde desea que se recorte la cadena. y un parámetro opcional es la longitud de la subcadena. Puede ver la documentación adecuada y el código de ejemplo en http://php.net/manual/en/function.substr.php
NOTA: el índice de una cadena comienza con 0.
Dinámicamente, si desea eliminar (a) parte (s) de (a) índice (s) fijo (s) de una cadena, use esta función:
/**
* 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);
}
Para su propósito:
remove_from_str("REGISTER 11223344 here", 1); // Output: REGISTER here
Uno de sus usos es ejecutar cadenas similares a comandos, que conoce sus estructuras.
El siguiente fragmento imprimirá "REGÍSTRATE aquí"
$string = "REGISTER 11223344 here";
$result = preg_replace(
array('/(\d+)/'),
array(''),
$string
);
print_r($result);
La API preg_replace () nos usa como se indica a continuación.
$result = preg_replace(
array('/pattern1/', '/pattern2/'),
array('replace1', 'replace2'),
$input_string
);
preg_replace()
en este caso. Tampoco hay ningún beneficio al usar un grupo de captura.
Haz lo siguiente
$string = 'REGISTER 11223344 here';
$content = preg_replace('/REGISTER(.*)here/','',$string);
Esto devolvería "REGÍSTRATE aquí"
o
$string = 'REGISTER 11223344 here';
$content = preg_replace('/REGISTER (.*) here/','',$string);
Esto devolvería "REGÍSTRATE aquí"
remove
, pero parece probable que quiera decirextract
que la cadena de destino se puede almacenar en la base de datos.