从另一个字符串搜索字符串并将这些字符串添加到数组

时间:2014-04-11 08:52:04

标签: php arrays regex function output

我的字符串是:

$str = "a quick brown fox over the lazy dog... #fox #dog. hello everybody #lazy";

我希望从该字符串中获取#fox, #dog#lazy以及包含#的每个字词,并且我想将这些字符串添加到这样的数组中:

 $array = array(
       [0]=>'#fox',
       [1]=>'#dog',
       [2]=>'#lazy',
   );

任何可以帮助我的人..请。非常感谢!

3 个答案:

答案 0 :(得分:3)

您可以使用此正则表达式'/#(\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]);

输出:

Array
(
    [0] => #fox
    [1] => #dog
    [2] => #lazy
)

enter image description here

答案 1 :(得分:0)

这是:

$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);

答案 2 :(得分:0)

使用带有preg_match_all的正则表达式,您将获得一个包含字符串中包含#字样的单个数组。

$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);