2010-11-19 6 views
36

cuál es la manera más rápida para obtener sólo el parte important_stuff de una cadena como esta:obtener la cadena después de una serie de una cadena

bla-bla_delimiter_important_stuff 

_delimiter_ siempre está ahí, pero el resto de la cadena se puede cambiar .

+1

parece ser una confusión sobre si los guiones bajos están literalmente allí o no. cualquier solución a continuación es buena. –

+0

Puede encontrar ['s ($ str) -> afterFirst ('_delimiter_')'] (https://github.com/delight-im/PHP-Str/blob/8fd0c608d5496d43adaa899642c1cce047e076dc/src/Str.php#L435) o ['s ($ str) -> afterLast ('_delimiter_')'] (https://github.com/delight-im/PHP-Str/blob/8fd0c608d5496d43adaa899642c1cce047e076dc/src/Str.php#L445) útil, ya que encontrado en [esta biblioteca independiente] (https://github.com/delight-im/PHP-Str). – caw

Respuesta

54

aquí:

$arr = explode('delimeter', $initialString); 
$important = $arr[1]; 
+1

Simple y eficaz, buena respuesta. – jsims281

+6

En PHP 5.4 ... para este caso en particular ... puede hacer el siguiente trazador de líneas ... '$ important = explode (" delimeter ", $ initialString) [1];' – zgr024

+5

¡3 hurras para desreferenciar! = D –

4
$string = "bla-bla_delimiter_important_stuff"; 
list($junk,$important_stufF) = explode("_delimiter_",$string); 

echo $important_stuff; 
> important_stuff 
+2

me gusta el uso de la lista. cuando tuviste la matriz por primera vez pensé que me habías mostrado una capacidad similar a la de una python que no conocía. –

+0

genial. gracias :) – Alex

6
 
$importantStuff = array_pop(explode('_delimiter_', $string)); 
+1

Esto arrojará un error 'E_STRICT' (' Estándares estrictos: solo las variables deben pasarse por referencia') ya que array_pop usa referencia, pero aún funciona. –

30
$result = end(explode('_delimiter_', 'bla-bla_delimiter_important_stuff')); 
+0

Solución muy inteligente. – andcl

+1

Esto arrojará: Normas estrictas: solo las variables se deben pasar por referencia. Tienes que asignar el explode() a una var. –

4

me gusta este método:

$str="bla-bla_delimiter_important_stuff"; 
$del="_delimiter_"; 
$pos=strpos($str, $del); 

que corte el extremo del delimitador al final de la cadena

$important=substr($str, $pos+strlen($del)-1, strlen($str)-1); 

nota:

1) para substr el inicio cuerda a '0', mientras que para strpos & strlen toma el tamaño de la cadena (comienza a '1')

2) utilizando 1 delimitador de carácter tal vez una buena idea

Cuestiones relacionadas