如何在文本中挂钩第一个哈希的单词

时间:2016-08-07 19:06:20

标签: php regex

我有一个名为'$ caption'结果的PHP $ var 结果。该结果有时会出现像Instagram或Twitter这样的#hashtag字样;

  

Caipirinha类似于莫吉托,除了没有薄荷......还有更多的酸橙。 #Rio #Olympics #RioodeJaneiro #Caipirinha

我只是想在文字中勾起第一个字眼(粗体)

PHP 中,我怎么能(挂钩)在文本中首先出现严重的单词($ var result)?

感谢您的回答。

2 个答案:

答案 0 :(得分:0)

<?php
    $result = "This is a sample result #cool #muchwow";
    $split = explode("#", $result);    
    $returnStr = '<b>#'.$split[1].'</b>';
    echo str_replace('#'.$split[1], $returnStr, $result);
?>

输出:

This is a sample result <b>#cool</b> #muchwow

爆炸将$split设置为包含主题标签之间的单词的数组。

因此,在您的示例中,$split变量将等于['Rio','Olympics'等等]。然后我发现第一次出现的'#'等于$ split [1]。

完成后我执行一个简单的str_replace()来查找添加html粗体标签的第一个#标签。

请在此处查看:https://eval.in/619127

答案 1 :(得分:0)

您可以将preg_match与正则表达式匹配,以匹配第一个#word。类似的东西:

$string = 'The Caipirinha is similar to a mojito, except there’s no mint … and there are a lot more limes. #Rio #Olympics #RiodeJaneiro #Caipirinha';
preg_match('/#\S+/', $string, $firsthashedword);
echo $firsthashedword[0];

应该这样做。 \S是任何非空白字符。 +是一个量词,意味着#之后必须至少有一个非空白字符。一旦遇到空白,比赛就会停止。

PHP演示:https://eval.in/619122
正则表达式演示:https://regex101.com/r/mE8lB6/1