2011-12-05 11 views
8

¿Hay alguna manera de eliminar todo antes e incluir la última instancia de un determinado personaje?PHP eliminar todo antes de la última instancia de un personaje

Tengo varias cadenas que contienen >, p. Ej.

  1. the > cat > sat > on > the > mat

  2. welcome > home

necesito las cuerdas para ser formateados para que se conviertan

  1. mat

  2. home

+0

posible duplicado de [remove_before()] (http://stackoverflow.com/questions/3403476/remove-before) – Gordon

Respuesta

22

Se podría utilizar una expresión regular ...

$str = preg_replace('/^.*>\s*/', '', $str); 

CodePad.

... o utilizar explode() ...

$tokens = explode('>', $str); 
$str = trim(end($tokens)); 

CodePad.

... o ... substr()

$str = trim(substr($str, strrpos($str, '>') + 1)); 

CodePad.

Probablemente haya muchas otras formas de hacerlo. Tenga en cuenta que mis ejemplos recortan la cadena resultante. Siempre puede editar mi código de ejemplo si eso no es un requisito.

+0

¿cuál es la operación menos costosa para las sugerencias anteriores? – Julian

+0

@Julian Profile and see! Sospecho que el último puede ser el más rápido. – alex

Cuestiones relacionadas