没有空格的PHP hashtags字符串不分为hashtags

时间:2014-01-19 06:55:56

标签: php html string hashtag

我试图将带有主题标签的字符串分成单个主题标签。

我正在使用此代码:

preg_match_all('/#([^\s]+)/', $str, $matches);

#test #test #test #example

如果用户使用空格插入主题标签,则此方法可以正常工作。但是,如果他们直接相互关注呢?

#test#test#test#example

2 个答案:

答案 0 :(得分:1)

你可以做到

$tags = explode('#', $string);
foreach($tags as $key => $tag)
  $tags[$key] = '#' . $tag;

答案 1 :(得分:1)

试试这个:

preg_match_all('/#(\w+)/', $str, $matches);

示例:

<?php
$str = '#test #test2 #123 qwe asd #rere#dada';
preg_match_all('/#(\w+)/', $str, $matches);
var_export($matches);

输出:

array (
  0 => 
  array (
    0 => '#test',
    1 => '#test2',
    2 => '#123',
    3 => '#rere',
    4 => '#dada',
  ),
  1 => 
  array (
    0 => 'test',
    1 => 'test2',
    2 => '123',
    3 => 'rere',
    4 => 'dada',
  ),
)

我认为学习RegEx将帮助您解决这些问题。