cadena de búsqueda de otra cadena y agregar estas cadenas de la matriz [cerrado]
Pregunta
Mi cadena es:
$str = "a quick brown fox over the lazy dog... #fox #dog. hello everybody #lazy";
Quiero conseguir #fox, #dog
y #lazy
a partir de esa cadena y también cada una de las palabras que contiene#
y quiero añadir estas cadena en una matriz como la siguiente:
$array = array(
[0]=>'#fox',
[1]=>'#dog',
[2]=>'#lazy',
);
Alguien que me pueda ayudar..Por favor.Muchas gracias!
Solución
Usted podría hacer uso de esta expresión regular '/#(\w+)/'
<?php
$str = "a quick brown fox over the lazy dog... #fox #dog. hello everybody #lazy";
preg_match_all('/#(\w+)/', $str, $matches);
array_walk($matches[1],function (&$v){ $v='#'.$v;});
print_r($matches[1]);
SALIDA :
Array
(
[0] => #fox
[1] => #dog
[2] => #lazy
)
Otros consejos
Aquí está:
$s = "a quick brown fox over the lazy dog... #fox #dog. hello everybody #lazy";
$r = array();
preg_match_all('/(?<!\w)#\w+/', $s,$r);
print_r($r);
el uso de la expresión regular con preg_match_all
se obtiene un array con todas las palabras que empiecen con #
contenido en la cadena.
$str = "a quick brown fox over the lazy dog... #fox #dog. hello everybody #lazy";
$pattern = '/(?<!\w)#\w+/';
preg_match_all($pattern, $str , $matches);
print_r($matches);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow